rack 3.1.12
Rack has an Unbounded-Parameter DoS in Rack::QueryParser
high severity CVE-2025-46727~> 2.2.14
, ~> 3.0.16
, >= 3.1.14
Summary
Rack::QueryParser
parses query strings and
application/x-www-form-urlencoded
bodies into Ruby data structures
without imposing any limit on the number of parameters, allowing
attackers to send requests with extremely large numbers of parameters.
Details
The vulnerability arises because Rack::QueryParser
iterates over
each &
-separated key-value pair and adds it to a Hash without
enforcing an upper bound on the total number of parameters. This
allows an attacker to send a single request containing hundreds of
thousands (or more) of parameters, which consumes excessive memory
and CPU during parsing.
Impact
An attacker can trigger denial of service by sending specifically crafted HTTP requests, which can cause memory exhaustion or pin CPU resources, stalling or crashing the Rack server. This results in full service disruption until the affected worker is restarted.
Mitigation
- Update to a version of Rack that limits the number of parameters parsed, or
- Use middleware to enforce a maximum query string size or parameter count, or
- Employ a reverse proxy (such as Nginx) to limit request sizes and reject oversized query strings or bodies.
Limiting request body sizes and query string lengths at the web server or CDN level is an effective mitigation.
ReDoS Vulnerability in Rack::Multipart handle_mime_head
medium severity CVE-2025-49007>= 3.1.16
< 3.1.0
Summary
There is a denial of service vulnerability in the Content-Disposition parsing component of Rack. This is very similar to the previous security issue CVE-2022-44571.
Details
Carefully crafted input can cause Content-Disposition header parsing in Rack to take an unexpected amount of time, possibly resulting in a denial of service attack vector. This header is used typically used in multipart parsing. Any applications that parse multipart posts using Rack (virtually all Rails applications) are impacted.
Credits
Thanks to scyoon for reporting this to the Rails security team
No officially reported memory leakage issues detected.
This gem version does not have any officially reported memory leaked issues.
No license issues detected.
This gem version has a license in the gemspec.
This gem version is available.
This gem version has not been yanked and is still available for usage.