CVE-2016-5325: HTTP processing security defect (CVE-2016-5325)
http: Properly validate for allowable characters in the reason argument in ServerResponse#writeHead(). Fixes a possible response splitting attack vector. This introduces a new case where throw may occur when configuring HTTP responses, users should already be adopting try/catch here.
This is a low severity security defect that that may make HTTP response splitting possible under certain circumstances. If user-input is passed to the reason argument to writeHead() on an HTTP response, a new-line character may be used to inject additional responses.
The fix for this defect introduces a new case where throw may occur when configuring HTTP responses. Users should already be adopting try/catch here.
Common Vulnerability Scoring System (CVSS) v3 Base Score:
Metric Score Base Score: 4.8 (Medium) Base Vector: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N Attack Vector: Network (AV:N) Attack Complexity: High (AC:H) Privileges Required: None (PR:N) User Interaction: None (UI:N) Scope of Impact: Unchanged (S:U) Confidentiality Impact: Low (C:L) Integrity Impact: Low (I:L) Availability Impact: None (A:N)
Refer to the CVSS v3 Specification for details on the meanings and application of the vector components.
Other sources
An unspecified low-severity Node.js HTTP processing vulnerability was found and will be fixed in latest update. Details are currently embargoed until new releases are available.
https://nodejs.org/en/blog/vulnerability/june-2016-security-releases/
— Red Hat
CRLF injection vulnerability in the ServerResponse#writeHead function in Node.js 0.10.x before 0.10.47, 0.12.x before 0.12.16, 4.x before 4.6.0, and 6.x before 6.7.0 allows remote attackers to inject arbitrary HTTP headers and conduct HTTP response splitting attacks via the reason argument.
— MITRE
We will be including fixes relating to Node.js HTTP processing. We categorise these as low-severity and are not aware of any existing exploits leveraging the defects. Full details are embargoed until new releases are available.
Common Vulnerability Scoring System (CVSS) v3 Base Score:
Refer to the CVSS v3 Specification for details on the meanings and application of the vector components.
All versions of Node.js are affected.
This defect will identified as CVE-2016-5325
— Node.Js
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
redhat/nodejsto a version that resolves this vulnerability.Fixed in 6.7.0 - Upgrade
Upgrade
redhat/nodejsto a version that resolves this vulnerability.Fixed in 4.6.0 - Upgrade
Upgrade
redhat/nodejsto a version that resolves this vulnerability.Fixed in 0.12.16 - Upgrade
Upgrade
redhat/nodejsto a version that resolves this vulnerability.Fixed in 0.10.47 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 4.6.0Fixed in 6.7.0 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 4.6.0 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.7.0 - Upgrade
Upgrade
Node.jsto a version that resolves this vulnerability.Fixed in 0.10.47 - Upgrade
Upgrade
Node.jsto a version that resolves this vulnerability.Fixed in 0.12.16 - Upgrade
Upgrade
Node.jsto a version that resolves this vulnerability.Fixed in 4.6.0 - Upgrade
Upgrade
Node.jsto a version that resolves this vulnerability.Fixed in 6.7.0 - Compensating control
Validate the reason argument passed to ServerResponse#writeHead() for allowable characters, particularly when it contains user input, to prevent newline characters from injecting HTTP headers or additional responses.
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the severity of CVE-2016-5325?
CVE-2016-5325 is considered to have a moderate severity level due to the potential for HTTP response splitting attacks.
How do I fix CVE-2016-5325?
To fix CVE-2016-5325, upgrade Node.js to versions 0.10.47, 0.12.16, 4.6.0, or 6.7.0 or later.
What impact can CVE-2016-5325 have on my application?
CVE-2016-5325 allows attackers to inject arbitrary HTTP headers, potentially leading to cache poisoning and other related attacks.
Which Node.js versions are affected by CVE-2016-5325?
CVE-2016-5325 affects Node.js versions prior to 0.10.47, 0.12.16, 4.6.0, and 6.7.0.
Can I mitigate CVE-2016-5325 without upgrading Node.js?
Mitigating CVE-2016-5325 without upgrading Node.js is challenging; it's best to upgrade to the fixed versions.