CVE-2025-46727 Details
Description
Rack is a modular Ruby web server interface. Prior to versions 2.2.14, 3.0.16, and 3.1.14, `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. 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. 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. Versions 2.2.14, 3.0.16, and 3.1.14 fix the issue. Some other mitigations are available. One may 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.
A denial-of-service vulnerability has been identified in Rack, a Ruby web server interface, in versions prior to 2.2.14, 3.0.16, and 3.1.14. The issue arises in `Rack::QueryParser`, which processes query strings and `application/x-www-form-urlencoded` bodies without limiting the number of parameters. This lack of restriction allows attackers to send requests with an excessive number of parameters, potentially in the hundreds of thousands, leading to memory exhaustion or high CPU usage. Such resource consumption can stall or crash the Rack server, causing a complete service disruption until the affected worker is restarted.
Users can update to Rack versions 2.2.14, 3.0.16, or 3.1.14, all of which address this vulnerability by introducing parameter limits. Additionally, for those who require higher limits, the new default limits can be overridden on a per-`Rack::QueryParser` basis. Instructions for this can be found in the `Rack` README.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
CISA-ADP
Assessed May 8, 2025References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-400 | Uncontrolled Resource Consumption | [email protected] |
| CWE-770 | Allocation of Resources Without Limits or Throttling | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| rack rack | < 2.2.14 >= 3.0.0, < 3.0.16 >= 3.1.0, < 3.1.14 |
CPE
Remediation
| |
Change History
4 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | [email protected] |
| Jun 17, 2026 | CVE Modified | CISA-ADP |
| Jun 17, 2025 | Initial Analysis | [email protected] |
| May 7, 2025 | New CVE Received | [email protected] |