CVE-2025-46727
Fixed in a distro release EPSS 1%CVSS 7.5
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.
Products: Rack
Fixed upstream
| Ecosystem | Package | Fixed in |
|---|---|---|
| RubyGems | rack | 2.2.14 |
| RubyGems | rack | 3.0.16 |
| RubyGems | rack | 3.1.14 |
Distro releases
| Release | Package | Fixed in |
|---|---|---|
| AlmaLinux 8 | pcs | 0.10.18-2.el8_10.5.alma.1 |
| AlmaLinux 8 | pcs-snmp | 0.10.18-2.el8_10.5.alma.1 |
| Chainguard | gitlab-rails-ce-18.1 | 18.1.6-r13 |
| Chainguard | gitlab-rails-ce-fips-18.1 | no fix |
| Chainguard | logstash-8 | 8.18.1-r1 |
| Chainguard | logstash-8-bitnami-compat | 8.18.1-r1 |
| Chainguard | logstash-8-compat | 8.18.1-r1 |
| Chainguard | logstash-8-env2yaml | 8.18.1-r1 |
| Chainguard | logstash-8-iamguarded-compat | 8.18.1-r1 |
| Chainguard | logstash-8-with-output-opensearch | 8.18.1-r1 |
| Chainguard | ruby3.2-rack-2.2 | 2.2.22-r0 |
| Chainguard | ruby3.2-rails-7.1 | 7.1.5.1-r7 |
| Chainguard | ruby3.2-rails-7.1-compat | 7.1.5.1-r7 |
| Chainguard | ruby3.2-rails-7.2 | 7.2.2.1-r7 |
| Chainguard | ruby3.2-rails-7.2-compat | 7.2.2.1-r7 |
| Chainguard | ruby3.2-rails-8.0 | 8.0.2-r4 |
| Chainguard | ruby3.2-rails-8.0-compat | 8.0.2-r4 |
| Chainguard | ruby3.3-rack-2.2 | 2.2.22-r0 |
| Chainguard | ruby3.3-rails-7.1 | 7.1.5.1-r7 |
| Chainguard | ruby3.3-rails-7.1-compat | 7.1.5.1-r7 |
| Chainguard | ruby3.3-rails-7.2 | 7.2.2.1-r7 |
| Chainguard | ruby3.3-rails-7.2-compat | 7.2.2.1-r7 |
| Chainguard | ruby3.3-rails-8.0 | 8.0.2-r4 |
| Chainguard | ruby3.3-rails-8.0-compat | 8.0.2-r4 |
| Chainguard | ruby3.4-rack-2.2 | 2.2.22-r0 |
| Chainguard | ruby3.4-rails-7.1 | 7.1.5.1-r7 |
| Chainguard | ruby3.4-rails-7.1-compat | 7.1.5.1-r7 |
| Chainguard | ruby3.4-rails-7.2 | 7.2.2.1-r7 |
| Chainguard | ruby3.4-rails-7.2-compat | 7.2.2.1-r7 |
| Chainguard | ruby3.4-rails-8.0 | 8.0.2-r4 |
| Chainguard | ruby3.4-rails-8.0-compat | 8.0.2-r4 |
| Chainguard | ruby4.0-rack-2.2 | 2.2.22-r0 |
| Debian 11 | ruby-rack | 2.1.4-3+deb11u4 |
| Debian 12 | ruby-rack | 2.2.20-0+deb12u1 |
| Debian 13 | ruby-rack | 3.1.16-0.1 |
| Debian 14 | ruby-rack | 3.1.16-0.1 |
| Red Hat Enterprise Linux 10.0 | cockpit-ha-cluster | 0:0.12.0-3.el10_0.2 |
| Red Hat Enterprise Linux 10.0 | pcs | 0:0.12.0-3.el10_0.2 |
| Red Hat Enterprise Linux 10.0 | pcs-snmp | 0:0.12.0-3.el10_0.2 |
| Red Hat Enterprise Linux 7 | pcs | 0:0.9.169-3.el7_9.4 |
| Red Hat Enterprise Linux 7 | pcs-debuginfo | 0:0.9.169-3.el7_9.4 |
| Red Hat Enterprise Linux 7 | pcs-snmp | 0:0.9.169-3.el7_9.4 |
| Red Hat Enterprise Linux 8 | pcs | 0:0.10.18-2.el8_10.5 |
| Red Hat Enterprise Linux 8 | pcs-snmp | 0:0.10.18-2.el8_10.5 |
| Red Hat Enterprise Linux 9 | pcs | 0:0.11.9-2.el9_6.1 |
| Red Hat Enterprise Linux 9 | pcs-snmp | 0:0.11.9-2.el9_6.1 |
| Red Hat rhel aus 8.4 | pcs | 0:0.10.8-1.el8_4.7 |
| Red Hat rhel aus 8.4 | pcs-snmp | 0:0.10.8-1.el8_4.7 |
| Red Hat rhel e4s 8.4 | pcs | 0:0.10.8-1.el8_4.7 |
| Red Hat rhel e4s 8.4 | pcs-snmp | 0:0.10.8-1.el8_4.7 |
| Red Hat rhel e4s 8.6 | pcs | 0:0.10.12-6.el8_6.8 |
| Red Hat rhel e4s 8.6 | pcs-snmp | 0:0.10.12-6.el8_6.8 |
| Red Hat rhel e4s 9.0 | pcs | 0:0.11.1-10.el9_0.8 |
| Red Hat rhel e4s 9.0 | pcs-snmp | 0:0.11.1-10.el9_0.8 |
| Red Hat rhel eus 8.8 | pcs | 0:0.10.15-4.el8_8.6 |
| Red Hat rhel eus 8.8 | pcs-snmp | 0:0.10.15-4.el8_8.6 |
| Red Hat rhel eus 9.2 | pcs | 0:0.11.4-7.el9_2.5 |
| Red Hat rhel eus 9.2 | pcs-snmp | 0:0.11.4-7.el9_2.5 |
| Red Hat rhel eus 9.4 | pcs | 0:0.11.7-2.el9_4.4 |
| Red Hat rhel eus 9.4 | pcs-snmp | 0:0.11.7-2.el9_4.4 |
| Red Hat rhel tus 8.4 | pcs | 0:0.10.8-1.el8_4.7 |
| Red Hat rhel tus 8.4 | pcs-snmp | 0:0.10.8-1.el8_4.7 |
| Red Hat rhel tus 8.6 | pcs | 0:0.10.12-6.el8_6.8 |
| Red Hat rhel tus 8.6 | pcs-snmp | 0:0.10.12-6.el8_6.8 |
| Red Hat satellite 6.15 | cjson | 0:1.7.18-1.el8sat |
| Red Hat satellite 6.15 | cjson-debuginfo | 0:1.7.18-1.el8sat |
| Red Hat satellite 6.15 | cjson-debugsource | 0:1.7.18-1.el8sat |
| Red Hat satellite 6.15 | python-sqlparse | 0:0.5.0-1.el8pc |
| Red Hat satellite 6.15 | python3.11-sqlparse | 0:0.5.0-1.el8pc |
| Red Hat satellite 6.15 | rubygem-rack | 0:2.2.14-1.el8sat |
| Red Hat satellite 6.16 | rubygem-rack | 0:2.2.14-1.el8sat |
| Red Hat satellite 6.16 | rubygem-rack | 0:2.2.14-1.el9sat |
| Red Hat satellite 6.17 | rubygem-rack | 0:2.2.14-1.el9sat |
| Red Hat satellite capsule 6.15 | cjson | 0:1.7.18-1.el8sat |
| Red Hat satellite capsule 6.15 | cjson-debuginfo | 0:1.7.18-1.el8sat |
| Red Hat satellite capsule 6.15 | cjson-debugsource | 0:1.7.18-1.el8sat |
| Red Hat satellite capsule 6.15 | python-sqlparse | 0:0.5.0-1.el8pc |
| Red Hat satellite capsule 6.15 | python3.11-sqlparse | 0:0.5.0-1.el8pc |
| Red Hat satellite capsule 6.15 | rubygem-rack | 0:2.2.14-1.el8sat |
| Red Hat satellite capsule 6.16 | rubygem-rack | 0:2.2.14-1.el8sat |
| Red Hat satellite capsule 6.16 | rubygem-rack | 0:2.2.14-1.el9sat |
| Red Hat satellite capsule 6.17 | rubygem-rack | 0:2.2.14-1.el9sat |
| Rocky Linux 8 | pcs | 0:0.10.18-2.el8_10.5 |
| Rocky Linux 9 | pcs | 0:0.11.9-2.el9_6.1 |
| SUSE Enterprise Storage 7.1 | rmt-server | 2.23-150300.3.54.1 |
| SUSE Linux Enterprise High Availability Extension 15 SP3 | rubygem-rack | 2.0.8-150000.3.31.1 |
| SUSE Linux Enterprise High Availability Extension 15 SP4 | rubygem-rack | 2.0.8-150000.3.31.1 |
| SUSE Linux Enterprise High Availability Extension 15 SP5 | rubygem-rack | 2.0.8-150000.3.31.1 |
| SUSE Linux Enterprise High Availability Extension 15 SP6 | rubygem-rack | 2.0.8-150000.3.31.1 |
| SUSE Linux Enterprise High Availability Extension 15 SP7 | rubygem-rack | 2.0.8-150000.3.31.1 |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | rmt-server | 2.23-150300.3.54.1 |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | rmt-server | 2.23-150400.3.42.1 |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | rmt-server | 2.23-150400.3.42.1 |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | rmt-server | 2.23-150500.3.34.2 |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | rmt-server | 2.23-150500.3.34.2 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP3 | rmt-server | 2.23-150300.3.54.1 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP4 | rmt-server | 2.23-150400.3.42.1 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP5 | rmt-server | 2.23-150500.3.34.2 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP6 | rmt-server | 2.23-150500.3.34.2 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP7 | rmt-server | 2.23-150700.3.6.1 |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | rmt-server | 2.23-150500.3.34.2 |
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | rmt-server | 2.23-150700.3.6.1 |
| SUSE Linux Enterprise Server 15 SP3-LTSS | rmt-server | 2.23-150300.3.54.1 |
| SUSE Linux Enterprise Server 15 SP4-LTSS | rmt-server | 2.23-150400.3.42.1 |
| SUSE Linux Enterprise Server 15 SP5-LTSS | rmt-server | 2.23-150500.3.34.2 |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | rmt-server | 2.23-150300.3.54.1 |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | rmt-server | 2.23-150400.3.42.1 |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | rmt-server | 2.23-150500.3.34.2 |
| SUSE Manager Proxy 4.3 | rmt-server | 2.23-150400.3.42.1 |
| SUSE Manager Server 4.3 | rmt-server | 2.23-150400.3.42.1 |
| Ubuntu 22.04 LTS | ruby-rack | 2.1.4-5ubuntu1.2 |
| Ubuntu 24.04 LTS | ruby-rack | 2.2.7-1ubuntu0.3 |
| Ubuntu 25.10 | ruby-rack | 3.1.16-0.1 |
| Ubuntu Pro 14.04 LTS | ruby-rack | no fix |
| Ubuntu Pro 14.04 LTS | ruby-rack | 1.5.2-3+deb8u3ubuntu1~esm10 |
| Ubuntu Pro 16.04 LTS | ruby-rack | no fix |
| Ubuntu Pro 16.04 LTS | ruby-rack | 1.6.4-3ubuntu0.2+esm8 |
| Ubuntu Pro 18.04 LTS | ruby-rack | no fix |
| Ubuntu Pro 18.04 LTS | ruby-rack | 1.6.4-4ubuntu0.2+esm8 |
| Ubuntu Pro 20.04 LTS | ruby-rack | 2.0.7-2ubuntu0.1+esm7 |
| Ubuntu Pro 22.04 LTS | ruby-rack | 2.1.4-5ubuntu1.1+esm2 |
| Wolfi | logstash-8 | 8.18.1-r1 |
| Wolfi | logstash-8-bitnami-compat | 8.18.1-r1 |
| Wolfi | logstash-8-compat | 8.18.1-r1 |
| Wolfi | logstash-8-env2yaml | 8.18.1-r1 |
| Wolfi | logstash-8-iamguarded-compat | 8.18.1-r1 |
| Wolfi | logstash-8-with-output-opensearch | 8.18.1-r1 |
| Wolfi | ruby3.2-rack-2.2 | 2.2.22-r0 |
| Wolfi | ruby3.2-rails-8.0 | 8.0.2-r4 |
| Wolfi | ruby3.2-rails-8.0-compat | 8.0.2-r4 |
| Wolfi | ruby3.3-rack-2.2 | 2.2.22-r0 |
| Wolfi | ruby3.3-rails-8.0 | 8.0.2-r4 |
| Wolfi | ruby3.3-rails-8.0-compat | 8.0.2-r4 |
| Wolfi | ruby3.4-rack-2.2 | 2.2.22-r0 |
| Wolfi | ruby3.4-rails-8.0 | 8.0.2-r4 |
| Wolfi | ruby3.4-rails-8.0-compat | 8.0.2-r4 |
| Wolfi | ruby4.0-rack-2.2 | 2.2.22-r0 |
| openSUSE Leap 15.6 | rmt-server | 2.23-150500.3.34.2 |
| openSUSE Leap 15.6 | rubygem-rack | 2.0.8-150000.3.31.1 |
| openSUSE Tumbleweed | rubygem-rack-2.2 | 2.2.22-1.1 |
| openSUSE Tumbleweed | rubygem-rack-2.2 | 2.2.14-1.1 |