CVE-2020-8287: HTTP Request Smuggling in nodejs
A flaw was found in nodejs. Affected versions of Node.js allow two copies of a header field in an HTTP request. The first header field is recognized while the second is ignored leading to HTTP request smuggling. The highest threat from this vulnerability is to data confidentiality and integrity.
Other sources
Affected versions of Node.js allow two copies of a header field in a http request. For example, two Transfer-Encoding header fields. In this case Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling (https://cwe.mitre.org/data/definitions/444.html).
All versions of the 15.x, 14.x, 12.x and 10.x releases lines
— Node.Js
Affected versions of Node.js allow two copies of a header field in a http request. For example, two Transfer-Encoding header fields. In this case Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling.
Reference: https://nodejs.org/en/blog/vulnerability/january-2021-security-releases/
— Red Hat
HTTP Request Smuggling in nodejs - Affected versions of Node.js allow two copies of a header field in a http request. For example, two Transfer-Encoding header fields. In this case Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling (https://cwe.mitre.org/data/definitions/444.html)
— Node.Js
Node.js is vulnerable to HTTP request smuggling. 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
Node.js versions before 10.23.1, 12.20.1, 14.15.4, 15.5.1 allow two copies of a header field in an HTTP request (for example, two Transfer-Encoding header fields). In this case, Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
redhat/rh-nodejs14-nodejsto a version that resolves this vulnerability.Fixed in 0:14.15.4-2.el7 - Upgrade
Upgrade
redhat/rh-nodejs12-nodejsto a version that resolves this vulnerability.Fixed in 0:12.20.1-1.el7 - Upgrade
Upgrade
redhat/rh-nodejs12-nodejs-nodemonto a version that resolves this vulnerability.Fixed in 0:2.0.3-1.el7 - Upgrade
Upgrade
redhat/rh-nodejs10-nodejsto a version that resolves this vulnerability.Fixed in 0:10.23.1-2.el7 - Upgrade
Upgrade
debian/http-parserto a version that resolves this vulnerability.Fixed in 2.9.4-4+deb11u1Fixed in 2.9.4-5Fixed in 2.9.4-6 - Upgrade
Upgrade
debian/nodejsto a version that resolves this vulnerability.Fixed in 12.22.12~dfsg-1~deb11u4Fixed in 12.22.12~dfsg-1~deb11u5Fixed in 18.19.0+dfsg-6~deb12u2Fixed in 18.19.0+dfsg-6~deb12u1Fixed in 20.17.0+dfsg-2 - Upgrade
Upgrade
redhat/nodeto a version that resolves this vulnerability.Fixed in 10.23.1 - Upgrade
Upgrade
redhat/nodeto a version that resolves this vulnerability.Fixed in 12.20.1 - Upgrade
Upgrade
redhat/nodeto a version that resolves this vulnerability.Fixed in 14.15.4 - Upgrade
Upgrade
redhat/nodeto a version that resolves this vulnerability.Fixed in 15.5.1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 10.23.1Fixed in 12.20.1Fixed in 14.15.4Fixed in 15.5.1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 10.23.1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 12.20.1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 14.15.4 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 15.5.1 - Upgrade
Upgrade
alpine/nodejsto a version that resolves this vulnerability.Fixed in 12.20.1-r0 - Upgrade
Upgrade
alpine/nodejsto a version that resolves this vulnerability.Fixed in 14.15.4-r0 - Upgrade
Upgrade
alpine/nodejs-currentto a version that resolves this vulnerability.Fixed in 15.5.1-r0 - Upgrade
Upgrade
Node.jsto a version that resolves this vulnerability.Fixed in 10.23.1 - Upgrade
Upgrade
Node.jsto a version that resolves this vulnerability.Fixed in 12.20.1 - Upgrade
Upgrade
Node.jsto a version that resolves this vulnerability.Fixed in 14.15.4 - Upgrade
Upgrade
Node.jsto a version that resolves this vulnerability.Fixed in 15.5.1
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the vulnerability ID for this Node.js vulnerability?
The vulnerability ID for this Node.js vulnerability is CVE-2020-8287.
What is the severity of CVE-2020-8287?
The severity of CVE-2020-8287 is medium.
How does CVE-2020-8287 affect Node.js?
CVE-2020-8287 allows two copies of a header field in an HTTP request, leading to HTTP request smuggling and posing a threat to data confidentiality and integrity.
Which versions of Node.js are affected by CVE-2020-8287?
Node.js versions before 10.23.1, 12.20.1, 14.15.4, and 15.5.1 are affected by CVE-2020-8287.
How can I fix CVE-2020-8287?
To fix CVE-2020-8287, upgrade to Node.js versions 10.23.1, 12.20.1, 14.15.4, or 15.5.1.