CVE-2021-41136 json
Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') in puma
published 2021-10-12 5 y ago modified 2026-07-08 4 mo ago also GHSA-48w2-rm65-62xx , EUVD-2021-2154
- cvss
- 3.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.2%
- EPSS 1.2% chance of exploitation in 30 days, percentile 68%
- public exploits
- 0
- none known
Summary
Puma is a HTTP 1.1 server for Ruby/Rack applications. Prior to versions 5.5.1 and 4.3.9, using `puma` with a proxy which forwards HTTP header values which contain the LF character could allow HTTP request smugggling. A client could smuggle a request through a proxy, causing the proxy to send a response back to another unknown client. The only proxy which has this behavior, as far as the Puma team is aware of, is Apache Traffic Server. If the proxy uses persistent connections and the client adds another request in via HTTP pipelining, the proxy may mistake it as the first request's body. Puma, however, would see it as two requests, and when processing the second request, send back a response that the proxy does not expect. If the proxy has reused the persistent connection to Puma to send another request for a different client, the second response from the first client will be sent to the second client. This vulnerability was patched in Puma 5.5.1 and 4.3.9. As a workaround, do not use Apache Traffic Server with `puma`.
Patch / fix
- rubygems puma 4.3.9, 5.5.1
- puma Debian 14, Debian 13, Debian 12 5.5.2-1
debian advisories DEBIAN-CVE-2021-41136
- foreman satellite utils 6.11, satellite capsule 6.11, satellite 6.11 3.1.1.21-2.el7sat
- foreman satellite utils 6.11, satellite capsule 6.11, satellite 6.11 3.1.1.21-2.el8sat
- libsolv satellite capsule 6.11, satellite 6.11 0.7.22-1.el7pc
- libsolv satellite capsule 6.11, satellite 6.11 0.7.22-1.el8pc
- candlepin satellite 6.11 4.1.13-1.el7sat
- candlepin satellite 6.11 4.1.13-1.el8sat
- satellite satellite utils 6.11, satellite capsule 6.11, satellite 6.11 6.11.0-2.el7sat
- satellite satellite utils 6.11, satellite capsule 6.11, satellite 6.11 6.11.0-2.el8sat
red hat advisories RHSA-2022:5498
- rubygem-puma SLE High Availability Extension 15 SP3, SLE High Availability Extension 15 SP2, SLE High Availability Extension 15 SP1 +3 more 4.3.11-150000.3.6.2
- kibana OpenStack Cloud Crowbar 9, OpenStack Cloud 9 4.6.6-4.12.1
- influxdb OpenStack Cloud Crowbar 9, OpenStack Cloud 9 1.3.8-4.6.1
- rubygem-puma OpenStack Cloud Crowbar 9 2.16.0-4.15.1
- ardana-ansible OpenStack Cloud 9 9.0+git.1628097238.f6cbb0e-3.29.1
- ardana-monasca OpenStack Cloud 9 9.0+git.1627995376.30bdf85-3.25.1
- openstack-nova OpenStack Cloud Crowbar 9, OpenStack Cloud 9 18.3.1~dev91-3.40.1
- python-eventlet OpenStack Cloud Crowbar 9, OpenStack Cloud 9 0.20.0-8.3.1
suse advisories SUSE-SU-2022:1515-1SUSE-SU-2021:3729-1SUSE-SU-2021:3728-1
- rubygem-puma-4 openSUSE Tumbleweed 4.3.10-1.1
- rubygem-puma-5 openSUSE Tumbleweed 5.6.5-1.1
- ruby3.2-rubygem-puma-5 openSUSE Tumbleweed 5.6.5-1.7
- rubygem-puma-5 openSUSE Tumbleweed 5.6.8-1.1
opensuse advisories openSUSE-SU-2024:11830-1openSUSE-SU-2024:12592-1openSUSE-SU-2024:13166-1openSUSE-SU-2024:13721-1
- libdb Rocky Linux 8 5.3.28-42.el8_4
rocky linux advisories RLSA-2022:5498
- ruby-puma Arch Linux 5.6.4-1
arch linux advisories AVG-2764
- github.com/puma/puma@436c718 commit
- github.com/puma/puma@acdc3ae commit
- github.com/puma/puma@fb6ad8f commit
- github.com/puma/puma/releases/tag/v4.3.9 release
- github.com/puma/puma/releases/tag/v5.5.1 release
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2021-41136 updated cvss 3.7
rubygem-puma: Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') in puma
-
Red Hat CloudForms Management Engine 5 rubygem-pumaaffected: no fix planned “Will not fix”
-
Red Hat Storage 3 rubygem-pumaaffected: no fix available “Fix deferred”
-
Red Hat Satellite 6.11 for RHEL 7 tfm-rubygem-puma 5.6.2-1.el7sat Red Hat Satellite 6.11 for RHEL 8 rubygem-puma 5.6.2-1.el8satfixed: vendor fix RHSA-2022:5498
-
Red Hat Satellite 6.11 for RHEL 7 tfm 7.0-1.el7sat, gofer 2.12.5-7.el7sat, katello 4.3.0-3.el7sat, libsolv 0.7.22-1.el7pc, libcomps 0.1.18-1.el7pc, libsolv0 0.6.34-4.el7sat, +637 more Red Hat Satellite 6.11 for RHEL 8 libdb 5.3.28-42.el8_4, katello 4.3.0-3.el8sat, libsolv 0.7.22-1.el8pc, libcomps 0.1.18-1.el8pc, python-idna 3.3-1.el8pc, python-pbr 5.6.0-1.el8pc, +628 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
1.20% chance of exploitation in the next 30 days, higher than 68% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N |
| NVD | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N |
| NVD | 2.0 | 3.6 | AV:N/AC:H/Au:S/C:P/I:P/A:N |
| GitHub | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| rubygems | puma | >=5.0.0, <5.5.1 <4.3.9 |
5.5.1 4.3.9 |
Affected products
- puma puma
Classification
- Weakness
-
- CWE-444 Inconsistent Interpretation of HTTP Requests
References
-
github.com
/puma/puma/commit/436c71807f00e07070902a03f79fd3e130eb6b18
web
-
github.com
/puma/puma/commit/acdc3ae571dfae0e045cf09a295280127db65c7f
web, patch, third-party-advisory
-
github.com
/puma/puma/commit/fb6ad8f8013ab5cdbb2f444cbfabd0b4fde71139
web
-
debian.org
/security/2022/dsa-5146
vendor-advisory, web, third-party-advisory
-
security.gentoo.org
/glsa/202208-28
vendor-advisory, web, third-party-advisory
-
github.com
/puma/puma/security/advisories/GHSA-48w2-rm65-62xx
web, third-party-advisory
-
lists.debian.org
/debian-lts-announce/2022/08/msg00015.html
mailing-list, web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2021-41136
advisory
-
github.com
/puma/puma
package
-
github.com
/puma/puma/releases/tag/v4.3.9
web
-
github.com
/puma/puma/releases/tag/v5.5.1
web
-
github.com
/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2021-41136.yml
web
Sources
- CVE List CVE-2021-41136
- GitHub Advisory GHSA-48w2-rm65-62xx
- NVD CVE-2021-41136
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.