HTTP Request Smuggling in puma
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · 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 simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| puma | puma | before 4.3.12; 5.0.0 to before 5.6.4 | 4.3.12, 5.6.4 | Patch available | CNA |
| — | puma (RubyGems) | 5.0.0 to before 5.6.4 | 5.6.4 | Patch available | GHSA-h99w-9q5r-gjq9 |
| — | puma (RubyGems) | before 4.3.12 | 4.3.12 | Patch available | GHSA-h99w-9q5r-gjq9 |
- puma Vendorpuma Affected before 4.3.12; 5.0.0 to before 5.6.4 Fixed in 4.3.12, 5.6.4 Patch available CNA
- puma (RubyGems) Vendor— Affected 5.0.0 to before 5.6.4 Fixed in 5.6.4 Patch available GHSA-h99w-9q5r-gjq9
- puma (RubyGems) Vendor— Affected before 4.3.12 Fixed in 4.3.12 Patch available GHSA-h99w-9q5r-gjq9
CPE configurations NVD · 6
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:* | before 4.3.12; 5.0.0 to before 5.6.4 | Vulnerable | puma |
| cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* | 10.0 | Vulnerable | Debian |
| cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:* | 11.0 | Vulnerable | Debian |
| cpe:2.3:o:fedoraproject:fedora:35:*:*:*:*:*:*:* | 35 | Vulnerable | Fedoraproject |
| cpe:2.3:o:fedoraproject:fedora:36:*:*:*:*:*:*:* | 36 | Vulnerable | Fedoraproject |
| cpe:2.3:o:fedoraproject:fedora:37:*:*:*:*:*:*:* | 37 | Vulnerable | Fedoraproject |
- cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:* Versions before 4.3.12; 5.0.0 to before 5.6.4 Vulnerable ·puma
- cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* Versions 10.0 Vulnerable ·Debian
- cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:* Versions 11.0 Vulnerable ·Debian
- cpe:2.3:o:fedoraproject:fedora:35:*:*:*:*:*:*:* Versions 35 Vulnerable ·Fedoraproject
- cpe:2.3:o:fedoraproject:fedora:36:*:*:*:*:*:*:* Versions 36 Vulnerable ·Fedoraproject
- cpe:2.3:o:fedoraproject:fedora:37:*:*:*:*:*:*:* Versions 37 Vulnerable ·Fedoraproject
Remediation
- Fix · CNA puma (puma) Fixed in 4.3.12, 5.6.4
- Fix · GHSA-h99w-9q5r-gjq9 puma (RubyGems) Fixed in 5.6.4 Advisory →
- Fix · GHSA-h99w-9q5r-gjq9 puma (RubyGems) Fixed in 4.3.12 Advisory →
Red Hat 2 advisories
- RHSA-2023:1486 Released 2023-03-28 · Red Hat rating ImportantRed Hat Gluster Storage web-admin-build security update
- Red Hat Gluster 3.5 Web Administration on RHEL-7 grafana-5.2.4-6.el7rhgs, rubygem-puma-4.3.12-1.el7rhgs, rubygem-puma-doc-4.3.12-1.el7rhgs +4
- RHSA-2022:8532 Released 2022-11-17 · Red Hat rating ImportantSatellite 6.9.10 Async Security Update
- Red Hat Satellite 6.9 tfm-rubygem-puma-4.3.12-1.el7sat
Vendor assessments
Red Hat
Red Hat rating: Important. 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 Satellite 6 | Affected | No fix yet |
| Red Hat Gluster 3.5 Web Administration on RHEL-7 | Fixed | RHSA-2023:1486 |
| Red Hat Satellite 6.9 | Fixed | RHSA-2022:8532 |
Not affected: 3 products
- Red Hat Gluster 3.5 Web Administration on RHEL-7
- Red Hat Satellite 6.9
- Red Hat Satellite Capsule 6.9
Timeline
- 2026-10-02 Threatist record created from CVE-2022-24790
- 2026-10-03 Alias added: GHSA-h99w-9q5r-gjq9
References
Advisory 8
Other 6
- https://github.com/puma/puma
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2022-24790.yml
- https://lists.fedoraproject.org/archives/list/[email protected]/message/F6YWGIIKL7KKTS3ZOAYMYPC7D6WQ5OA5
- https://lists.fedoraproject.org/archives/list/[email protected]/message/L7NESIBFCNSR3XH7LXDPKVMSUBNUB43G
- https://lists.fedoraproject.org/archives/list/[email protected]/message/TUBFJ44NCKJ34LECZRAP4N5VL6USJSIB
- https://portswigger.net/web-security/request-smuggling
More Puma vulnerabilities
- 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
- TI-2019-12551 Potential DOS attack in Puma CVSS 3.1HIGH 7.5
Sources
- CVE-2022-24790 · CVE Program
- CVE-2022-24790 · NVD
- FIRST EPSS
- GHSA-h99w-9q5r-gjq9 · GitHub Advisory Database · CC BY 4.0
- CVE-2022-24790 · 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