Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') in puma
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Partial Red Hat: 2 fixed, 2 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat.
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`.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| puma | puma | 5.0.0 to before 5.5.1; before 4.3.9 | 5.5.1, 4.3.9 | Patch available | CNA |
| — | puma (RubyGems) | 5.0.0 to before 5.5.1 | 5.5.1 | Patch available | GHSA-48w2-rm65-62xx |
| — | puma (RubyGems) | before 4.3.9 | 4.3.9 | Patch available | GHSA-48w2-rm65-62xx |
- puma Vendorpuma Affected 5.0.0 to before 5.5.1; before 4.3.9 Fixed in 5.5.1, 4.3.9 Patch available CNA
- puma (RubyGems) Vendor— Affected 5.0.0 to before 5.5.1 Fixed in 5.5.1 Patch available GHSA-48w2-rm65-62xx
- puma (RubyGems) Vendor— Affected before 4.3.9 Fixed in 4.3.9 Patch available GHSA-48w2-rm65-62xx
Remediation
- Fix · CNA puma (puma) Fixed in 5.5.1, 4.3.9
- Fix · GHSA-48w2-rm65-62xx puma (RubyGems) Fixed in 5.5.1 Advisory →
- Fix · GHSA-48w2-rm65-62xx puma (RubyGems) Fixed in 4.3.9 Advisory →
Red Hat 1 advisory
- RHSA-2022:5498 Released 2022-07-05 · Red Hat rating ModerateSatellite 6.11 Release
- Red Hat Satellite 6.11 for RHEL 7 candlepin-4.1.13-1.el7sat, foreman-3.1.1.21-2.el7sat, libsolv-0.7.22-1.el7pc +4
- Red Hat Satellite 6.11 for RHEL 8 candlepin-4.1.13-1.el8sat, foreman-3.1.1.21-2.el8sat, libsolv-0.7.22-1.el8pc +8
Vendor assessments
Red Hat
Red Hat rating: Low. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| CloudForms Management Engine 5 | Affected | No fix planned: Will not fix |
| Red Hat Storage 3 | Affected | No fix yet: Fix deferred |
| Red Hat Satellite 6.11 for RHEL 7 | Fixed | RHSA-2022:5498 |
| Red Hat Satellite 6.11 for RHEL 8 | Fixed | RHSA-2022:5498 |
Not affected: 2 products
- Red Hat Satellite 6.11 for RHEL 7
- Red Hat Satellite 6.11 for RHEL 8
Timeline
- 2026-10-02 Threatist record created from CVE-2021-41136
- 2026-10-03 Alias added: GHSA-48w2-rm65-62xx
References
Advisory 5
Other 6
- https://github.com/puma/puma/commit/436c71807f00e07070902a03f79fd3e130eb6b18
- https://github.com/puma/puma/commit/fb6ad8f8013ab5cdbb2f444cbfabd0b4fde71139
- https://github.com/puma/puma
- https://github.com/puma/puma/releases/tag/v4.3.9
- https://github.com/puma/puma/releases/tag/v5.5.1
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2021-41136.yml
More Puma vulnerabilities
- TI-2022-08603 HTTP Request Smuggling in puma CVSS 3.1CRITICAL 9.1
- TI-2023-21048 Inconsistent Interpretation of HTTP Requests in puma CVSS 3.1CRITICAL 9.8
- TI-2022-07686 Information Exposure when using Puma with Rails CVSS 3.1HIGH 8.0
- TI-2020-08950 HTTP Smuggling via Transfer-Encoding Header in Puma CVSS 3.1HIGH 7.5
- TI-2020-08951 HTTP Smuggling via Transfer-Encoding Header in Puma CVSS 3.1HIGH 7.5
- TI-2020-04303 HTTP Response Splitting in Puma CVSS 3.1HIGH 7.5
Sources
- CVE-2021-41136 · CVE Program
- CVE-2021-41136 · NVD
- FIRST EPSS
- GHSA-48w2-rm65-62xx · GitHub Advisory Database · CC BY 4.0
- CVE-2021-41136 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences