CVE-2025-46727 Unbounded-Parameter DoS in Rack::QueryParser

High 7.5 Published Updated

Attackers can cause denial of service by sending requests with excessive parameters, exhausting memory and CPU in Rack::QueryParser.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2025-46727?

CVE-2025-46727 is a high-severity denial of service vulnerability in rack, published on 7 May 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official 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.

Weakness: CWE-770, CWE-400

Which versions are affected by CVE-2025-46727?

6 open source packages ship an affected version, including rack. It affects 1 product.

PackageAffectedFixed in
rack RubyGemsAll versions2.2.14
rack RubyGemsAll versions2.2.14
rack RubyGemsFrom 3.03.0.16
rack RubyGemsFrom 3.03.0.16
rack RubyGemsFrom 3.13.1.14
rack RubyGemsFrom 3.13.1.14
Linux distribution packages (26)
cockpit-ha-cluster Red Hat:enterprise_linux:10.0All versions0:0.12.0-3.el10_0.2
pcs Red Hat:enterprise_linux:10.0All versions0:0.12.0-3.el10_0.2
pcs-snmp Red Hat:enterprise_linux:10.0All versions0:0.12.0-3.el10_0.2
pcs Red Hat:enterprise_linux:7::serverAll versions0:0.9.169-3.el7_9.4
pcs-debuginfo Red Hat:enterprise_linux:7::serverAll versions0:0.9.169-3.el7_9.4
pcs-snmp Red Hat:enterprise_linux:7::serverAll versions0:0.9.169-3.el7_9.4
pcs Red Hat:enterprise_linux:9::highavailabilityAll versions0:0.11.9-2.el9_6.1
pcs-snmp Red Hat:enterprise_linux:9::highavailabilityAll versions0:0.11.9-2.el9_6.1
pcs Red Hat:enterprise_linux:9::resilientstorageAll versions0:0.11.9-2.el9_6.1
pcs-snmp Red Hat:enterprise_linux:9::resilientstorageAll versions0:0.11.9-2.el9_6.1
pcs Red Hat:rhel_eus:9.2::highavailabilityAll versions0:0.11.4-7.el9_2.5
pcs-snmp Red Hat:rhel_eus:9.2::highavailabilityAll versions0:0.11.4-7.el9_2.5
pcs Red Hat:rhel_eus:9.2::resilientstorageAll versions0:0.11.4-7.el9_2.5
pcs-snmp Red Hat:rhel_eus:9.2::resilientstorageAll versions0:0.11.4-7.el9_2.5
pcs Red Hat:rhel_eus:9.4::highavailabilityAll versions0:0.11.7-2.el9_4.4
pcs-snmp Red Hat:rhel_eus:9.4::highavailabilityAll versions0:0.11.7-2.el9_4.4
pcs Red Hat:rhel_eus:9.4::resilientstorageAll versions0:0.11.7-2.el9_4.4
pcs-snmp Red Hat:rhel_eus:9.4::resilientstorageAll versions0:0.11.7-2.el9_4.4
rubygem-rack Red Hat:satellite:6.16::el8All versions0:2.2.14-1.el8sat
rubygem-rack Red Hat:satellite:6.16::el9All versions0:2.2.14-1.el9sat
rubygem-rack Red Hat:satellite:6.17::el9All versions0:2.2.14-1.el9sat
rubygem-rack Red Hat:satellite_capsule:6.16::el8All versions0:2.2.14-1.el8sat
rubygem-rack Red Hat:satellite_capsule:6.16::el9All versions0:2.2.14-1.el9sat
rubygem-rack Red Hat:satellite_capsule:6.17::el9All versions0:2.2.14-1.el9sat
pcs Rocky Linux:9All versions0:0.11.9-2.el9_6.1
rubygem-rack-2.2 openSUSE:TumbleweedAll versions2.2.14-1.1

Products include Rack Rack.

How do I fix CVE-2025-46727?

Upgrade rack to a fixed version for your release line: 2.2.14, 3.0.16 or 3.1.14.

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-2025-46727 being exploited?

There is no known exploitation of CVE-2025-46727 in the wild and no public exploit code.

Sources

Also known as DEBIAN-CVE-2025-46727, GHSA-gjh7-p2fx-99vx, MINI-7rf6-4wjc-h5q8, MINI-m77v-pp9v-prv2, OESA-2025-2211, OESA-2025-2212 and 14 more.

Is CVE-2025-46727 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free