CVE-2020-5247: HTTP Response Splitting in Puma

Published Feb 28, 2020
·
Updated

In Puma (RubyGem) before 4.3.2 and 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.

Other sources

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.

MITRE

Affected Software

13 affected componentsFixes available
rubygems/puma>=4.0.0<4.3.2
4.3.3
rubygems/puma<3.12.3
3.12.4
Puma Puma Ruby<=3.12.3
Puma Puma Ruby>=4.0.0<=4.3.2
ruby-lang Ruby<=2.3.0
ruby-lang Ruby>=2.4.0<=2.4.7
ruby-lang Ruby>=2.5.0<=2.5.6
ruby-lang Ruby>=2.6.0<=2.6.4
ruby-lang Ruby=2.7.0-preview1
Debian Debian Linux=9.0
Fedoraproject Fedora=30
Fedoraproject Fedora=31
Fedoraproject Fedora=32

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade rubygems/puma to a version that resolves this vulnerability.

    Fixed in 4.3.3
  2. Upgrade

    Upgrade rubygems/puma to a version that resolves this vulnerability.

    Fixed in 3.12.4
  3. Upgrade

    Upgrade puma (RubyGem) to a version that resolves this vulnerability.

    Fixed in 4.3.2
  4. Upgrade

    Upgrade puma (RubyGem) to a version that resolves this vulnerability.

    Fixed in 3.12.3

Event History

Feb 28, 2020
Advisory Published
04:53 PM
CVE Published
via MITRE·04:55 PM
Data Sourced
via MITRE·04:55 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·05:15 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is CVE-2020-5247?

CVE-2020-5247 is a vulnerability in Puma (RubyGem) that allows an attacker to inject malicious content via newline characters in response headers.

2

What is the severity of CVE-2020-5247?

The severity of CVE-2020-5247 is high with a CVSS score of 7.5.

3

Which versions of Puma are affected by CVE-2020-5247?

Puma versions before 4.3.2 and before 3.12.3 are affected by CVE-2020-5247.

4

How can an attacker exploit CVE-2020-5247?

An attacker can exploit CVE-2020-5247 by using newline characters to end the header and inject malicious content, such as additional headers or a new response body.

5

Where can I find more information about CVE-2020-5247?

You can find more information about CVE-2020-5247 on the GitHub security advisory page and the OWASP website.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203