HTTP Response Splitting in Puma
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Partial Red Hat: 4 without a fix
Attack profile from CVSS 3.1 · NVD. Fix status from CNA, GitHub and Red Hat.
Summary
In Puma (RubyGem) before 4.3.2 and before 3.12.3, if an application using Puma allows untrusted input in a response header, an attacker can use newline characters (i.e. `CR`, `LF` or`/r`, `/n`) to end the header and inject malicious content, such as additional headers or an entirely new response body. This vulnerability is known as HTTP Response Splitting. While not an attack in itself, response splitting is a vector for several other attacks, such as cross-site scripting (XSS). This is related to CVE-2019-16254, which fixed this vulnerability for the WEBrick Ruby web server. This has been fixed in versions 4.3.2 and 3.12.3 by checking all headers for line endings and rejecting headers with those characters.
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 | before 3.12.3; 4.0.0 to before 4.3.2 | 3.12.3, 4.3.2 | Patch available | CNA |
| — | puma (RubyGems) | before 3.12.4 | 3.12.4 | Patch available | GHSA-84j7-475p-hp8v |
| — | puma (RubyGems) | 4.0.0 to before 4.3.3 | 4.3.3 | Patch available | GHSA-84j7-475p-hp8v |
- Puma Vendorpuma Affected before 3.12.3; 4.0.0 to before 4.3.2 Fixed in 3.12.3, 4.3.2 Patch available CNA
- puma (RubyGems) Vendor— Affected before 3.12.4 Fixed in 3.12.4 Patch available GHSA-84j7-475p-hp8v
- puma (RubyGems) Vendor— Affected 4.0.0 to before 4.3.3 Fixed in 4.3.3 Patch available GHSA-84j7-475p-hp8v
CPE configurations NVD · 7
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:* | up to 3.12.3; 4.0.0 – 4.3.2 | Vulnerable | puma |
| cpe:2.3:a:ruby-lang:ruby:*:*:*:*:*:*:*:* | up to 2.3.0; 2.4.0 – 2.4.7; 2.5.0 – 2.5.6; 2.6.0 – 2.6.4 | Vulnerable | ruby |
| cpe:2.3:a:ruby-lang:ruby:2.7.0:preview1:*:*:*:*:*:* | 2.7.0 preview1 | Vulnerable | ruby |
| cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:* | 9.0 | Vulnerable | Debian |
| cpe:2.3:o:fedoraproject:fedora:30:*:*:*:*:*:*:* | 30 | Vulnerable | Fedoraproject |
| cpe:2.3:o:fedoraproject:fedora:31:*:*:*:*:*:*:* | 31 | Vulnerable | Fedoraproject |
| cpe:2.3:o:fedoraproject:fedora:32:*:*:*:*:*:*:* | 32 | Vulnerable | Fedoraproject |
- cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:* Versions up to 3.12.3; 4.0.0 – 4.3.2 Vulnerable ·puma
- cpe:2.3:a:ruby-lang:ruby:*:*:*:*:*:*:*:* Versions up to 2.3.0; 2.4.0 – 2.4.7; 2.5.0 – 2.5.6; 2.6.0 – 2.6.4 Vulnerable ·ruby
- cpe:2.3:a:ruby-lang:ruby:2.7.0:preview1:*:*:*:*:*:* Versions 2.7.0 preview1 Vulnerable ·ruby
- cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:* Versions 9.0 Vulnerable ·Debian
- cpe:2.3:o:fedoraproject:fedora:30:*:*:*:*:*:*:* Versions 30 Vulnerable ·Fedoraproject
- cpe:2.3:o:fedoraproject:fedora:31:*:*:*:*:*:*:* Versions 31 Vulnerable ·Fedoraproject
- cpe:2.3:o:fedoraproject:fedora:32:*:*:*:*:*:*:* Versions 32 Vulnerable ·Fedoraproject
Remediation
- Fix · CNA Puma (puma) Fixed in 3.12.3, 4.3.2
- Fix · GHSA-84j7-475p-hp8v puma (RubyGems) Fixed in 3.12.4 Advisory →
- Fix · GHSA-84j7-475p-hp8v puma (RubyGems) Fixed in 4.3.3 Advisory →
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Advisory ·
Puma — FEDORA-2020-fd87f90634
2 records Highest priority Priority LOW 2 LOW
Other records, highest priority first
- TI-2020-04305 HTTP Response Splitting (Early Hints) in PumaPriority LOW 32
- Advisory ·
Puma — FEDORA-2020-08092b4c97
2 records Highest priority Priority LOW 2 LOW
Other records, highest priority first
- TI-2020-04305 HTTP Response Splitting (Early Hints) in PumaPriority LOW 32
Show 1 more group
- Advisory ·
Puma — FEDORA-2020-a3f26a9387
2 records Highest priority Priority LOW 2 LOW
Other records, highest priority first
- TI-2020-04305 HTTP Response Splitting (Early Hints) in PumaPriority LOW 32
Vendor assessments
Red Hat
Red Hat rating: Moderate. 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 3scale API Management Platform 2 | Affected | No fix yet |
| Red Hat Software Collections | Affected | No fix planned: Will not fix |
| Red Hat Storage 3 | Affected | No fix planned: Will not fix |
Timeline
- 2026-10-02 Threatist record created from CVE-2020-5247
- 2026-10-03 Alias added: GHSA-84j7-475p-hp8v
References
Advisory 8
- https://github.com/puma/puma/security/advisories/GHSA-84j7-475p-hp8v
- https://owasp.org/www-community/attacks/HTTP_Response_Splitting
- https://www.ruby-lang.org/en/news/2019/10/01/http-response-splitting-in-webrick-cve-2019-16254
- FEDORA-2020-a3f26a9387
- FEDORA-2020-fd87f90634
- FEDORA-2020-08092b4c97
- [debian-lts-announce] 20220525 [SECURITY] [DLA 3023-1] puma security update
- https://nvd.nist.gov/vuln/detail/CVE-2020-5247
Other 6
- https://github.com/puma/puma/commit/c36491756f68a9d6a8b3a49e7e5eb07fe6f1332f
- https://github.com/puma/puma
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2020-5247.yml
- https://lists.fedoraproject.org/archives/list/[email protected]/message/BMJ3CGZ3DLBJ5WUUKMI5ZFXFJQMXJZIK
- https://lists.fedoraproject.org/archives/list/[email protected]/message/DIHVO3CQMU7BZC7FCTSRJ33YDNS3GFPK
- https://lists.fedoraproject.org/archives/list/[email protected]/message/NJ3LL5F5QADB6LM46GXZETREAKZMQNRD
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-2019-12551 Potential DOS attack in Puma CVSS 3.1HIGH 7.5
Sources
- CVE-2020-5247 · CVE Program
- CVE-2020-5247 · NVD
- FIRST EPSS
- GHSA-84j7-475p-hp8v · GitHub Advisory Database · CC BY 4.0
- CVE-2020-5247 · 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