{"id":"UBUNTU-CVE-2025-61771","details":"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.","modified":"2026-04-17T10:10:19.678059Z","published":"2025-10-07T15:16:00Z","related":["USN-7960-1"],"upstream":["CVE-2025-61771"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2025-61771"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2025-61771"},{"type":"REPORT","url":"https://github.com/rack/rack/security/advisories/GHSA-w9pc-fmgc-vxvw"},{"type":"REPORT","url":"https://github.com/rack/rack/commit/589127f4ac8b5cf11cf88fb0cd116ffed4d2181e"},{"type":"REPORT","url":"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e"},{"type":"REPORT","url":"https://github.com/rack/rack/commit/e08f78c656c9394d6737c022bde087e0f33336fd"},{"type":"ADVISORY","url":"https://ubuntu.com/security/notices/USN-7960-1"}],"affected":[{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:14.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack@1.5.2-3+deb8u3ubuntu1~esm11?arch=source&distro=esm-infra-legacy/trusty"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.5.2-1","1.5.2-1ubuntu0.1~esm1","1.5.2-3+deb8u3ubuntu1~esm2","1.5.2-3+deb8u3ubuntu1~esm3","1.5.2-3+deb8u3ubuntu1~esm4","1.5.2-3+deb8u3ubuntu1~esm6","1.5.2-3+deb8u3ubuntu1~esm7","1.5.2-3+deb8u3ubuntu1~esm8","1.5.2-3+deb8u3ubuntu1~esm9","1.5.2-3+deb8u3ubuntu1~esm10","1.5.2-3+deb8u3ubuntu1~esm11"],"ecosystem_specific":{"binaries":[{"binary_name":"librack-ruby","binary_version":"1.5.2-3+deb8u3ubuntu1~esm11"},{"binary_name":"librack-ruby1.8","binary_version":"1.5.2-3+deb8u3ubuntu1~esm11"},{"binary_name":"librack-ruby1.9.1","binary_version":"1.5.2-3+deb8u3ubuntu1~esm11"},{"binary_name":"ruby-rack","binary_version":"1.5.2-3+deb8u3ubuntu1~esm11"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2025/UBUNTU-CVE-2025-61771.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:16.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack@1.6.4-3ubuntu0.2+esm10?arch=source&distro=esm-apps/xenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.5.2-4","1.6.4-2","1.6.4-3","1.6.4-3ubuntu0.1","1.6.4-3ubuntu0.2","1.6.4-3ubuntu0.2+esm1","1.6.4-3ubuntu0.2+esm2","1.6.4-3ubuntu0.2+esm4","1.6.4-3ubuntu0.2+esm5","1.6.4-3ubuntu0.2+esm6","1.6.4-3ubuntu0.2+esm7","1.6.4-3ubuntu0.2+esm8","1.6.4-3ubuntu0.2+esm9","1.6.4-3ubuntu0.2+esm10"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"1.6.4-3ubuntu0.2+esm10"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2025/UBUNTU-CVE-2025-61771.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:18.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack@1.6.4-4ubuntu0.2+esm10?arch=source&distro=esm-apps/bionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.6.4-4","1.6.4-4ubuntu0.1","1.6.4-4ubuntu0.2","1.6.4-4ubuntu0.2+esm1","1.6.4-4ubuntu0.2+esm2","1.6.4-4ubuntu0.2+esm4","1.6.4-4ubuntu0.2+esm5","1.6.4-4ubuntu0.2+esm6","1.6.4-4ubuntu0.2+esm7","1.6.4-4ubuntu0.2+esm8","1.6.4-4ubuntu0.2+esm9","1.6.4-4ubuntu0.2+esm10"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"1.6.4-4ubuntu0.2+esm10"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2025/UBUNTU-CVE-2025-61771.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:Pro:20.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack@2.0.7-2ubuntu0.1+esm10?arch=source&distro=esm-apps/focal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.6-3","2.0.7-2","2.0.7-2ubuntu0.1","2.0.7-2ubuntu0.1+esm1","2.0.7-2ubuntu0.1+esm2","2.0.7-2ubuntu0.1+esm3","2.0.7-2ubuntu0.1+esm4","2.0.7-2ubuntu0.1+esm5","2.0.7-2ubuntu0.1+esm6","2.0.7-2ubuntu0.1+esm7","2.0.7-2ubuntu0.1+esm8","2.0.7-2ubuntu0.1+esm9","2.0.7-2ubuntu0.1+esm10"],"ecosystem_specific":{"binaries":[{"binary_name":"ruby-rack","binary_version":"2.0.7-2ubuntu0.1+esm10"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2025/UBUNTU-CVE-2025-61771.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:22.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack@2.1.4-5ubuntu1.2?arch=source&distro=jammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.4-5ubuntu1.2"}]}],"versions":["2.1.4-3","2.1.4-4","2.1.4-5","2.1.4-5ubuntu1","2.1.4-5ubuntu1.1"],"ecosystem_specific":{"availability":"No subscription required","binaries":[{"binary_name":"ruby-rack","binary_version":"2.1.4-5ubuntu1.2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2025/UBUNTU-CVE-2025-61771.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/ruby-rack@2.2.7-1ubuntu0.5?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.7-1ubuntu0.5"}]}],"versions":["2.2.4-3","2.2.7-1","2.2.7-1ubuntu0.1","2.2.7-1ubuntu0.2","2.2.7-1ubuntu0.3","2.2.7-1ubuntu0.4"],"ecosystem_specific":{"availability":"No subscription required","binaries":[{"binary_name":"ruby-rack","binary_version":"2.2.7-1ubuntu0.5"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2025/UBUNTU-CVE-2025-61771.json"}},{"package":{"name":"ruby-rack","ecosystem":"Ubuntu:25.10","purl":"pkg:deb/ubuntu/ruby-rack@3.1.16-0.1ubuntu0.1?arch=source&distro=questing"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.16-0.1ubuntu0.1"}]}],"versions":["2.2.7-1.1","3.1.16-0.1"],"ecosystem_specific":{"availability":"No subscription required","binaries":[{"binary_name":"ruby-rack","binary_version":"3.1.16-0.1ubuntu0.1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2025/UBUNTU-CVE-2025-61771.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"type":"Ubuntu","score":"medium"}]}