Rack Multipart Parser Unbounded Header Denial-of-Service, CVE-2025-XXXXX (High)

Listen to this Post

The CVE-2025-XXXXX vulnerability exploits the Rack::Multipart::Parser’s handling of multipart form data headers. When parsing a multipart request, the parser reads data for each part until it encounters a specific sequence of carriage return and line feed characters (CRLFCRLF) which denotes the end of the headers and the start of the body. The flawed code uses a loop that continuously appends incoming data to a buffer (@sbuf.concat(content)) while searching for this terminator. If an attacker sends a part where the header block is intentionally malformed and never includes the terminating CRLFCRLF sequence, the parser will continue to buffer the entire remainder of the request body for that part into memory. Since there is no upper limit on the size of this header buffer, a single, large malicious request can cause the application’s memory consumption to grow uncontrollably, leading to memory exhaustion and a Denial-of-Service condition.
Platform: Rack
Version: <2.2.19, 3.1-3.1.16, 3.2-3.2.1
Vulnerability: Unbounded Header Parsing
Severity: High

date: 2025-10-07

Prediction: 2025-10-21

What Undercode Say:

curl -X POST -F "malicious_part=@large_file.bin" $TARGET_URL
Simplified vulnerable loop logic
while (content = io.read(8192))
@sbuf.concat(content)
break if @sbuf.index(TERMINATOR)
end

How Exploit:

Craft multipart request with header lacking CRLFCRLF terminator.

Protection from this CVE

Update to Rack versions 2.2.19, 3.1.17, or 3.2.2.

Impact:

Memory exhaustion leading to Denial-of-Service.

🎯Let’s Practice Exploiting & Learn Patching For Free:

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top