CVE-2025-61771
Fixed in a distro release EPSS <1%CVSS 7.5
Rack is a modular Ruby web server interface. In versions prior to 2.2.19, 3.1.17, and 3.2.2, ``Rack::Multipart::Parser` stores non-file form fields (parts without a `filename`) entirely in memory as Ruby `String` objects. A single large text field in a multipart/form-data request (hundreds of megabytes or more) can consume equivalent process memory, potentially leading to out-of-memory (OOM) conditions and denial of service (DoS). Attackers can send large non-file fields to trigger excessive memory usage. Impact scales with request size and concurrency, potentially leading to worker crashes or severe garbage-collection overhead. All Rack applications processing multipart form submissions are affected. Versions 2.2.19, 3.1.17, and 3.2.2 enforce a reasonable size cap for non-file fields (e.g., 2 MiB). Workarounds include restricting maximum request body size at the web-server or proxy layer (e.g., Nginx `client_max_body_size`) and validating and rejecting unusually large form fields at the application level.
Products: Rack
Fixed upstream
| Ecosystem | Package | Fixed in |
|---|---|---|
| RubyGems | rack | 2.2.19 |
| RubyGems | rack | 3.1.17 |
| RubyGems | rack | 3.2.2 |
Distro releases
| Release | Package | Fixed in |
|---|---|---|
| AlmaLinux 10 | cockpit-ha-cluster | 0.12.1-1.el10_1.1 |
| AlmaLinux 8 | pcs | 0.10.18-2.el8_10.7.alma.1 |
| AlmaLinux 8 | pcs-snmp | 0.10.18-2.el8_10.7.alma.1 |
| AlmaLinux 9 | pcs | 0.11.10-1.el9_7.1 |
| AlmaLinux 9 | pcs-snmp | 0.11.10-1.el9_7.1 |
| Amazon Linux 2 | pcs | 0.9.169-3.amzn2.3.0.7 |
| Amazon Linux 2 | pcs-snmp | 0.9.169-3.amzn2.3.0.7 |
| Chainguard | gitlab-cng-18.2 | 18.2.8-r0 |
| Chainguard | gitlab-rails-ce-18.1 | 18.1.6-r13 |
| Chainguard | gitlab-rails-ce-18.2 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.1 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.2 | no fix |
| Chainguard | logstash-8.17 | 8.17.10-r3 |
| Chainguard | logstash-8.17-compat | 8.17.10-r3 |
| Chainguard | logstash-8.17-env2yaml | 8.17.10-r3 |
| Chainguard | logstash-8.17-iamguarded-compat | 8.17.10-r3 |
| Chainguard | logstash-8.17-with-output-opensearch | 8.17.10-r3 |
| Chainguard | logstash-8.18 | 8.18.8-r1 |
| Chainguard | logstash-8.18-compat | 8.18.8-r1 |
| Chainguard | logstash-8.18-env2yaml | 8.18.8-r1 |
| Chainguard | logstash-8.18-iamguarded-compat | 8.18.8-r1 |
| Chainguard | logstash-8.18-with-output-opensearch | 8.18.8-r1 |
| Chainguard | logstash-8.19 | 8.19.5-r1 |
| Chainguard | logstash-8.19-compat | 8.19.5-r1 |
| Chainguard | logstash-8.19-env2yaml | 8.19.5-r1 |
| Chainguard | logstash-8.19-iamguarded-compat | 8.19.5-r1 |
| Chainguard | logstash-8.19-with-output-opensearch | 8.19.5-r1 |
| Chainguard | logstash-9.0 | 9.0.8-r1 |
| Chainguard | logstash-9.0-compat | 9.0.8-r1 |
| Chainguard | logstash-9.0-env2yaml | 9.0.8-r1 |
| Chainguard | logstash-9.0-iamguarded-compat | 9.0.8-r1 |
| Chainguard | logstash-9.0-with-output-opensearch | 9.0.8-r1 |
| Chainguard | logstash-9.1 | 9.1.5-r1 |
| Chainguard | logstash-9.1-bitnami-compat | 9.1.5-r1 |
| Chainguard | logstash-9.1-compat | 9.1.5-r1 |
| Chainguard | logstash-9.1-env2yaml | 9.1.5-r1 |
| Chainguard | logstash-9.1-iamguarded-compat | 9.1.5-r1 |
| Chainguard | logstash-9.1-with-output-opensearch | 9.1.5-r1 |
| Chainguard | ruby3.2-rack-2.2 | 2.2.22-r0 |
| Chainguard | ruby3.2-rails-7.2 | 7.2.2.2-r1 |
| Chainguard | ruby3.2-rails-7.2-compat | 7.2.2.2-r1 |
| Chainguard | ruby3.2-rails-8.0 | 8.0.3-r1 |
| Chainguard | ruby3.2-rails-8.0-compat | 8.0.3-r1 |
| Chainguard | ruby3.3-rack-2.2 | 2.2.22-r0 |
| Chainguard | ruby3.3-rails-7.2 | 7.2.2.2-r1 |
| Chainguard | ruby3.3-rails-7.2-compat | 7.2.2.2-r1 |
| Chainguard | ruby3.3-rails-8.0 | 8.0.3-r1 |
| Chainguard | ruby3.3-rails-8.0-compat | 8.0.3-r1 |
| Chainguard | ruby3.4-rack-2.2 | 2.2.22-r0 |
| Chainguard | ruby3.4-rails-7.2 | 7.2.2.2-r1 |
| Chainguard | ruby3.4-rails-7.2-compat | 7.2.2.2-r1 |
| Chainguard | ruby3.4-rails-8.0 | 8.0.3-r1 |
| Chainguard | ruby3.4-rails-8.0-compat | 8.0.3-r1 |
| 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.18-1~deb13u1 |
| Debian 14 | ruby-rack | 3.1.18-1 |
| Red Hat Enterprise Linux 10.0 | cockpit-ha-cluster | 0:0.12.0-3.el10_0.3 |
| Red Hat Enterprise Linux 10.0 | pcs | 0:0.12.0-3.el10_0.3 |
| Red Hat Enterprise Linux 10.0 | pcs-snmp | 0:0.12.0-3.el10_0.3 |
| Red Hat Enterprise Linux 10.1 | cockpit-ha-cluster | 0:0.12.1-1.el10_1.1 |
| Red Hat Enterprise Linux 10.1 | pcs | 0:0.12.1-1.el10_1.1 |
| Red Hat Enterprise Linux 10.1 | pcs-snmp | 0:0.12.1-1.el10_1.1 |
| Red Hat Enterprise Linux 7 | pcs | 0:0.9.169-3.el7_9.5 |
| Red Hat Enterprise Linux 7 | pcs-debuginfo | 0:0.9.169-3.el7_9.5 |
| Red Hat Enterprise Linux 7 | pcs-snmp | 0:0.9.169-3.el7_9.5 |
| Red Hat Enterprise Linux 8 | pcs | 0:0.10.18-2.el8_10.7 |
| Red Hat Enterprise Linux 8 | pcs-snmp | 0:0.10.18-2.el8_10.7 |
| Red Hat Enterprise Linux 9 | pcs | 0:0.11.9-2.el9_6.2 |
| Red Hat Enterprise Linux 9 | pcs | 0:0.11.10-1.el9_7.1 |
| Red Hat Enterprise Linux 9 | pcs-snmp | 0:0.11.9-2.el9_6.2 |
| Red Hat Enterprise Linux 9 | pcs-snmp | 0:0.11.10-1.el9_7.1 |
| Red Hat rhel aus 8.4 | pcs | 0:0.10.8-1.el8_4.8 |
| Red Hat rhel aus 8.4 | pcs-snmp | 0:0.10.8-1.el8_4.8 |
| Red Hat rhel e4s 8.6 | pcs | 0:0.10.12-6.el8_6.10 |
| Red Hat rhel e4s 8.6 | pcs-snmp | 0:0.10.12-6.el8_6.10 |
| Red Hat rhel e4s 8.8 | pcs | 0:0.10.15-4.el8_8.9 |
| Red Hat rhel e4s 8.8 | pcs-snmp | 0:0.10.15-4.el8_8.9 |
| Red Hat rhel e4s 9.0 | pcs | 0:0.11.1-10.el9_0.9 |
| Red Hat rhel e4s 9.0 | pcs-snmp | 0:0.11.1-10.el9_0.9 |
| Red Hat rhel eus long life 8.4 | pcs | 0:0.10.8-1.el8_4.8 |
| Red Hat rhel eus long life 8.4 | pcs-snmp | 0:0.10.8-1.el8_4.8 |
| Red Hat rhel tus 8.6 | pcs | 0:0.10.12-6.el8_6.10 |
| Red Hat rhel tus 8.6 | pcs-snmp | 0:0.10.12-6.el8_6.10 |
| Red Hat rhel tus 8.8 | pcs | 0:0.10.15-4.el8_8.9 |
| Red Hat rhel tus 8.8 | pcs-snmp | 0:0.10.15-4.el8_8.9 |
| Rocky Linux 8 | pcs | 0:0.10.18-2.el8_10.7 |
| Rocky Linux 9 | pcs | 0:0.11.10-1.el9_7.1 |
| Rocky Linux 9 | pcs | 0:0.11.9-2.el9_6.2 |
| Ubuntu 22.04 LTS | ruby-rack | 2.1.4-5ubuntu1.2 |
| Ubuntu 24.04 LTS | ruby-rack | 2.2.7-1ubuntu0.5 |
| Ubuntu 25.10 | ruby-rack | 3.1.16-0.1ubuntu0.1 |
| Ubuntu Pro 14.04 LTS | ruby-rack | no fix |
| Ubuntu Pro 16.04 LTS | ruby-rack | 1.6.4-3ubuntu0.2+esm9 |
| Ubuntu Pro 16.04 LTS | ruby-rack | no fix |
| Ubuntu Pro 18.04 LTS | ruby-rack | 1.6.4-4ubuntu0.2+esm9 |
| Ubuntu Pro 18.04 LTS | ruby-rack | no fix |
| Ubuntu Pro 20.04 LTS | ruby-rack | 2.0.7-2ubuntu0.1+esm8 |
| Ubuntu Pro 20.04 LTS | ruby-rack | no fix |
| Wolfi | gitlab-cng-18.2 | 18.2.8-r0 |
| Wolfi | ruby3.2-rack-2.2 | 2.2.22-r0 |
| Wolfi | ruby3.3-rack-2.2 | 2.2.22-r0 |
| Wolfi | ruby3.4-rack-2.2 | 2.2.22-r0 |
| Wolfi | ruby4.0-rack-2.2 | 2.2.22-r0 |
| openSUSE Tumbleweed | rubygem-rack-2.2 | 2.2.19-1.1 |
| openSUSE Tumbleweed | rubygem-rack-2.2 | 2.2.22-1.1 |