CVE-2025-46727

Unbounded-Parameter DoS in Rack::QueryParser

Published May 7, 2025 CVSS 3.1 · 7.5 High EPSS 1.2% KEV · Not listed
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.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4357-1 ruby-rack security update
EUVD EUVD EUVD-2025-13948 Rack has an Unbounded-Parameter DoS in Rack::QueryParser
Github GHSA Github GHSA GHSA-gjh7-p2fx-99vx Rack has an Unbounded-Parameter DoS in Rack::QueryParser
Ubuntu USN Ubuntu USN USN-7507-1 Rack vulnerabilities
History
Type Values Removed Values Added
Metrics epss

{'score': 0.00322}

epss

{'score': 0.00336}

Type Values Removed Values Added
CPEs cpe:/a:redhat:satellite:6.15::el8
cpe:/a:redhat:satellite_capsule:6.15::el8
Type Values Removed Values Added
First Time appeared Rack
Rack rack
CPEs cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*
cpe:2.3:a:rack:rack:*:-:*:*:*:ruby:*:*
Vendors & Products Rack
Rack rack
Type Values Removed Values Added
CPEs cpe:/a:redhat:rhel_e4s:8.4::highavailability
cpe:/a:redhat:rhel_tus:8.4::highavailability
cpe:/o:redhat:enterprise_linux:10.0
cpe:/o:redhat:enterprise_linux:7
Type Values Removed Values Added
First Time appeared Redhat rhel E4s
Redhat rhel Eus
Redhat rhel Tus
CPEs cpe:/a:redhat:enterprise_linux:9::highavailability
cpe:/a:redhat:rhel_e4s:8.6::highavailability
cpe:/a:redhat:rhel_e4s:9.0::highavailability
cpe:/a:redhat:rhel_eus:8.8::highavailability
cpe:/a:redhat:rhel_eus:9.2::highavailability
cpe:/a:redhat:rhel_eus:9.4::highavailability
cpe:/a:redhat:rhel_tus:8.6::highavailability
Vendors & Products Redhat rhel E4s
Redhat rhel Eus
Redhat rhel Tus
Type Values Removed Values Added
First Time appeared Redhat enterprise Linux
CPEs cpe:/a:redhat:enterprise_linux:8::highavailability
Vendors & Products Redhat enterprise Linux
Type Values Removed Values Added
First Time appeared Redhat
Redhat satellite
Redhat satellite Capsule
CPEs cpe:/a:redhat:satellite:6.16::el8
cpe:/a:redhat:satellite:6.16::el9
cpe:/a:redhat:satellite:6.17::el9
cpe:/a:redhat:satellite_capsule:6.16::el8
cpe:/a:redhat:satellite_capsule:6.16::el9
cpe:/a:redhat:satellite_capsule:6.17::el9
Vendors & Products Redhat
Redhat satellite
Redhat satellite Capsule
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
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.
Title Unbounded-Parameter DoS in Rack::QueryParser
Weaknesses CWE-400
CWE-770
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
May 8, 2025, 2:01 PM
Reserved
Apr 28, 2025, 8:56 PM
Status
Analyzed
Published
May 7, 2025, 11:15 PM
Modified
Jun 17, 2026, 9:26 AM
Severity
Important
Public date
May 7, 2025, 11:07 PM