CVE-2020-8201: HTTP Request Smuggling due to CR-to-Hyphen conversion

Published Sep 15, 2020
·
Updated

A flaw was found in Node.js, where affected Node.js versions converted carriage returns in HTTP request headers to a hyphen before parsing. This flaw leads to HTTP Request Smuggling as it is a non-standard interpretation of the header. The highest threat from this vulnerability is to confidentiality and integrity.

Other sources

Affected Node.js versions converted carriage returns in HTTP request headers to a hyphen before parsing. This can lead to HTTP Request Smuggling as it is a non-standard interpretation of the header.

All versions of the 14.x and 12.x releases line

— Node.Js

Affected Node.js versions converted carriage returns in HTTP request headers to a hyphen before parsing. This can lead to HTTP Request Smuggling as it is a non-standard interpretation of the header.

Upstream advisory:

https://nodejs.org/en/blog/vulnerability/september-2020-security-releases/

— Red Hat

HTTP Request Smuggling due to CR-to-Hyphen conversion

— Node.Js

Node.js < 12.18.4 and < 14.11 can be exploited to perform HTTP desync attacks and deliver malicious payloads to unsuspecting users. The payloads can be crafted by an attacker to hijack user sessions, poison cookies, perform clickjacking, and a multitude of other attacks depending on the architecture of the underlying system. The attack was possible due to a bug in processing of carrier-return symbols in the HTTP header names.

Node.js is vulnerable to HTTP request smuggling, caused by CR-to-Hyphen conversion. By sending specially crafted HTTP request headers, an attacker could exploit this vulnerability to poison the web cache, bypass web application firewall protection, and conduct XSS attacks.

— IBM

Affected Software

37 affected componentsFixes available
redhat/rh-nodejs12-nodejs<0:12.18.4-3.el7
0:12.18.4-3.el7
redhat/nodejs<14.11.0
14.11.0
redhat/nodejs<12.18.4
12.18.4
redhat/llhttp<2.1.2
2.1.2
Nodejs Node.js>=12.0.0<12.18.4
Nodejs Node.js>=14.0.0<14.11.0
openSUSE Leap=15.2
Fedoraproject Fedora=33
Node.js Node.js>=12.0.0<12.18.4, >=14.0.0<14.11.0
12.18.414.11.0
Node.js Node.js>=12.0.0<12.18.4
12.18.4
Node.js Node.js>=14.0.0<14.11.0
14.11.0
alpine/nodejs<12.20.1-r0
12.20.1-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs<12.18.4-r0
12.18.4-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0
alpine/nodejs-current<14.11.0-r0
14.11.0-r0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade redhat/rh-nodejs12-nodejs to a version that resolves this vulnerability.

    Fixed in 0:12.18.4-3.el7
  2. Upgrade

    Upgrade redhat/nodejs to a version that resolves this vulnerability.

    Fixed in 14.11.0
  3. Upgrade

    Upgrade redhat/nodejs to a version that resolves this vulnerability.

    Fixed in 12.18.4
  4. Upgrade

    Upgrade redhat/llhttp to a version that resolves this vulnerability.

    Fixed in 2.1.2
  5. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 12.18.4Fixed in 14.11.0
  6. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 12.18.4
  7. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 14.11.0
  8. Upgrade

    Upgrade alpine/nodejs to a version that resolves this vulnerability.

    Fixed in 12.20.1-r0
  9. Upgrade

    Upgrade alpine/nodejs to a version that resolves this vulnerability.

    Fixed in 12.18.4-r0
  10. Upgrade

    Upgrade alpine/nodejs-current to a version that resolves this vulnerability.

    Fixed in 14.11.0-r0
  11. Upgrade

    Upgrade Node.js to a version that resolves this vulnerability.

    Fixed in 12.18.4
  12. Upgrade

    Upgrade Node.js to a version that resolves this vulnerability.

    Fixed in 14.11

Event History

Sep 15, 2020
CVE Published
12:00 AM
Data Sourced
via Node.js·09:05 PM
SeverityAffected Software
Data Sourced
via Node.js·09:50 PM
Description
Sep 18, 2020
CVE Published
via MITRE·08:12 PM
Data Sourced
via MITRE·08:12 PM
DescriptionWeakness
Data Sourced
via NVD·09:15 PM
DescriptionSeverityWeaknessAffected Software
Data Sourced
via OSV·09:15 PM
DescriptionSeverityAffected Software
Feb 22, 2021
Data Sourced
via IBM·12:00 AM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is CVE-2020-8201?

CVE-2020-8201 is a vulnerability in Node.js that allows for HTTP request smuggling due to CR-to-Hyphen conversion.

2

How can Node.js be exploited using CVE-2020-8201?

Node.js < 12.18.4 and < 14.11 can be exploited to perform HTTP desync attacks and deliver malicious payloads.

3

What are the potential attacks that can be performed using CVE-2020-8201?

CVE-2020-8201 can be used to hijack user sessions, poison cookies, perform clickjacking, and more.

4

Which versions of Node.js are affected by CVE-2020-8201?

Node.js versions < 12.18.4 and < 14.11 are affected by CVE-2020-8201.

5

What is the severity of CVE-2020-8201?

CVE-2020-8201 has a severity rating of 7.4 (high).

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