CVE-2020-5249: puma HTTP Request/Response Splitting
Vulnerability summary
CVE-2020-5249 is a medium (CVSS 6.5) HTTP Request/Response Splitting vulnerability in puma. EPSS estimates a 1.57% chance of exploitation in the next 30 days, higher than 75% of scored vulnerabilities.
Advisory lineage
Upstream 0 · Downstream 5 · Related 6Timeline
- 02-03-2020PublishedVulnerability first disclosed.
- 04-08-2024Last modifiedVulnerability information updated.
Description
In Puma (RubyGem) before 4.3.3 and 3.12.4, if an application using Puma allows untrusted input in an early-hints header, an attacker can use a carriage return character 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-2020-5247, which fixed this vulnerability but only for regular responses. This has been fixed in 4.3.3 and 3.12.4.
CVSS metrics
6 scores · 5 sources · 2 versions- OSV · UbuntuEcosystem advisory · calculated6.5MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- OSV · DebianEcosystem advisory · calculated6.5MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
- OSV · RubygemsEcosystem advisory · calculated6.5MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- NVDNIST6.5MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
EPSS trend
Probability
1.57%
Chance of exploitation in the next 30 days
Percentile
75%
Versus all other CVEs
30-day change
0.00 pp
From 1.57% on 20-09-2026
Known exploited
Compare KEV catalogsNot in any of the 3 tracked catalogs.
Public exploits
0 foundNo public exploits indexed.
Weaknesses
CWE · root cause- CWE-113Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting')The product receives data from an HTTP agent/component (e.g., web server, proxy, browser, etc.), but it does not neutralize or incorrectly neutralizes CR and LF characters before the data is included in outgoing HTTP headers.
- CWE-74Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')The product constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.
Affected systems
Debian1 product
- puma< 3.12.4-1
Puma1 product
- puma< 3.12.4 | ≥ 4.0.0, < 4.3.3 | ≤ 3.12.3 | ≥ 4.0.0, ≤ 4.3.2
RubyGems1 product
- puma< 3.12.4 | ≥ 4.0.0, < 4.3.3
Ubuntu1 product
- puma< 3.12.4-1ubuntu2
4 vendors · 4 products
References
16 links- owasp.org/www-community/attacks/HTTP_Response_SplittingX Refsource MISCREPORTWEBThird Party Advisory
- github.com/puma/puma/security/advisories/GHSA-33vf-4xgg-9r58X Refsource CONFIRMREPORTWEBThird Party Advisory
- github.com/puma/puma/security/advisories/GHSA-84j7-475p-hp8vX Refsource MISCREPORTWEBThird Party Advisory
- github.com/puma/puma/commit/c22712fc93284a45a93f9ad7023888f3a65524f3X Refsource MISCREPORTWEBPatchThird Party Advisory