CVE-2024-39316 Rack ReDoS Vulnerability in HTTP Accept Headers Parsing
Attackers can cause Denial of Service in Rack applications by sending crafted HTTP Accept headers that trigger excessive processing time.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-39316?
CVE-2024-39316 is a medium-severity denial of service vulnerability in rack, published on 2 Jul 2024. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Rack is a modular Ruby web server interface. Starting in version 3.1.0 and prior to version 3.1.5, Regular Expression Denial of Service (ReDoS) vulnerability exists in the `Rack::Request::Helpers` module when parsing HTTP Accept headers. This vulnerability can be exploited by an attacker sending specially crafted `Accept-Encoding` or `Accept-Language` headers, causing the server to spend excessive time processing the request and leading to a Denial of Service (DoS). The fix for CVE-2024-26146 was not applied to the main branch and thus while the issue was fixed for the Rack v3.0 release series, it was not fixed in the v3.1 release series until v3.1.5. Users of versions on the 3.1 branch should upgrade to version 3.1.5 to receive the fix.
Weakness: CWE-1333
Which versions are affected by CVE-2024-39316?
2 open source packages ship an affected version, including rack. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
rack RubyGems | From 3.1.0 | 3.1.5 |
rack RubyGems | From 3.1.0 | 3.1.5 |
Products include Rack Rack.
How do I fix CVE-2024-39316?
Upgrade rack to 3.1.5 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2024-39316 being exploited?
There is no known exploitation of CVE-2024-39316 in the wild and no public exploit code.
Other vulnerabilities in rack
- CVE-2026-34785 Rack: Local file inclusion in `Rack::Static` via URL Prefix Matching
- CVE-2026-34827 Rack: Algorithmic-Complexity DoS in Rack::Multipart::Parser
- CVE-2026-34829 Rack: Denial of Service via Unbounded Multipart File Upload Without Content-Length
- CVE-2026-22860 Rack has a Directory Traversal via Rack:Directory
- CVE-2025-61919 Rack is vulnerable to a memory-exhaustion DoS through unbounded URL-encoded body parsing
Sources
Also known as GHSA-cj83-2ww7-mvq7.