Skip to content
Fencer Vulns
low 3.7

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

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-puma
    affected: no fix planned “Will not fix”
  • Red Hat Storage 3 rubygem-puma
    affected: 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.el8sat
    fixed: 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 more
    not 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

Sources

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.