First published: Mon Mar 02 2020(Updated: )
### Impact 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](https://owasp.org/www-community/attacks/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](https://github.com/puma/puma/security/advisories/GHSA-84j7-475p-hp8v), which fixed this vulnerability but only for regular responses. ### Patches This has been fixed in 4.3.3 and 3.12.4. ### Workarounds Users can not allow untrusted/user input in the Early Hints response header. ### For more information If you have any questions or comments about this advisory: * Open an issue in [puma](https://github.com/puma/puma) * Email us a project maintainer. [Email addresses are listed in our Code of Conduct](https://github.com/puma/puma/blob/master/CODE_OF_CONDUCT.md#enforcement).
Credit: security-advisories@github.com security-advisories@github.com
Affected Software | Affected Version | How to fix |
---|---|---|
Puma Puma | <=3.12.3 | |
Puma Puma | >=4.0.0<=4.3.2 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2020-5249 is a vulnerability in Puma (RubyGem) that allows an attacker to inject malicious content by using a carriage return character in the early-hints header.
The impact of CVE-2020-5249 is that an attacker can inject additional headers or an entirely new response body.
Puma versions before 4.3.3 and 3.12.4 are affected by CVE-2020-5249.
To fix CVE-2020-5249, upgrade Puma to version 4.3.3 or 3.12.4 depending on your current version.
CVE-2020-5249 has a severity rating of 6.5 (medium).