CVE-2025-59830
Rack QueryParser has an unsafe default allowing params_limit bypass via semicolon-separated parameters
In short
Rack's parameter parser has a flaw where it counts parameters separated by & but also accepts ; separators, allowing attackers to bypass the parameter limit and cause the server to use excessive CPU and memory.
Technical detail
CVE-2025-59830 exploits CWE-400 and CWE-770 by leveraging Rack::QueryParser's inconsistent delimiter handling—params_limit is enforced only for & separators while ; delimiters are still processed, enabling attackers to submit unbounded parameters and trigger denial-of-service through resource exhaustion when default configuration is used.
Summary generated and translated by AI from the official description.
Rack is a modular Ruby web server interface. Prior to version 2.2.18, Rack::QueryParser enforces its params_limit only for parameters separated by &, while still splitting on both & and ;. As a result, attackers could use ; separators to bypass the parameter count limit and submit more parameters than intended. Applications or middleware that directly invoke Rack::QueryParser with its default configuration (no explicit delimiter) could be exposed to increased CPU and memory consumption. This can be abused as a limited denial-of-service vector. This issue has been patched in version 2.2.18.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Affected products
rack · rackWant to know if your infrastructure is exposed to this?
Talk to TrueHacking →