VYPR
Moderate severityNVD Advisory· Published Jul 2, 2024· Updated Aug 2, 2024

Rack ReDoS Vulnerability in HTTP Accept Headers Parsing

CVE-2024-39316

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.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
rackRubyGems
>= 3.1.0, < 3.1.53.1.5

Affected products

1

Patches

2
3620bb1d140d
412c980450ca

Merge pull request from GHSA-cj83-2ww7-mvq7

https://github.com/rack/rackDwi SiswantoJul 2, 2024via ghsa
1 file changed · +4 2
  • lib/rack/request.rb+4 2 modified
    @@ -642,8 +642,10 @@ def wrap_ipv6(host)
           end
     
           def parse_http_accept_header(header)
    -        header.to_s.split(/\s*,\s*/).map do |part|
    -          attribute, parameters = part.split(/\s*;\s*/, 2)
    +        header.to_s.split(',').map do |part|
    +          attribute, parameters = part.split(';', 2)
    +          attribute.strip!
    +          parameters&.strip!
               quality = 1.0
               if parameters and /\Aq=([\d.]+)/ =~ parameters
                 quality = $1.to_f
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

7

News mentions

0

No linked articles in our index yet.