CVE-2018-12123: Input Validation
A flaw was found in Node.js versions before 6.15.0, 8.14.0, 10.14.0 and 11.3.0. A hostname spoofing in URL parser for javascript protocol. If a Node.js application is using url.parse() to determine the URL hostname, that hostname can be spoofed by using a mixed case "javascript:" (e.g. "javAscript:") protocol (other protocols are not affected). If security decisions are made about the URL based on the hostname, they may be incorrect.
References: https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/
Other sources
CVE-2018-12121 Node.js: All versions prior to Node.js 6.15.0, 8.14.0, 10.14.0 and 11.3.0: Denial of Service with large HTTP headers: By using a combination of many requests with maximum sized headers (almost 80 KB per connection), and carefully timed completion of the headers, it is possible to cause the HTTP server to abort from heap allocation failure. Attack potential is mitigated by the use of a load balancer or other proxy layer. CVE-2018-12122 Node.js: All versions prior to Node.js 6.15.0, 8.14.0, 10.14.0 and 11.3.0: Slowloris HTTP Denial of Service: An attacker can cause a Denial of Service (DoS) by sending headers very slowly keeping HTTP or HTTPS connections and associated resources alive for a long period of time. CVE-2018-12123 Node.js: All versions prior to Node.js 6.15.0, 8.14.0, 10.14.0 and 11.3.0: Hostname spoofing in URL parser for javascript protocol: If a Node.js application is using url.parse() to determine the URL hostname, that hostname can be spoofed by using a mixed case "javascript:" (e.g. "javAscript:") protocol (other protocols are not affected). If security decisions are made about the URL based on the hostname, they may be incorrect.
— F5
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 17.5.117.1.3 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 8.4.1 - Upgrade
Upgrade
redhat/nodejsto a version that resolves this vulnerability.Fixed in 6.15.0 - Upgrade
Upgrade
redhat/nodejsto a version that resolves this vulnerability.Fixed in 8.14.0 - Upgrade
Upgrade
redhat/nodejsto a version that resolves this vulnerability.Fixed in 10.14.0 - Upgrade
Upgrade
redhat/nodejsto a version that resolves this vulnerability.Fixed in 11.3.0 - Upgrade
Upgrade
nodejsto a version that resolves this vulnerability.Fixed in 6.15.0 - Upgrade
Upgrade
nodejsto a version that resolves this vulnerability.Fixed in 8.14.0 - Upgrade
Upgrade
nodejsto a version that resolves this vulnerability.Fixed in 10.14.0 - Upgrade
Upgrade
nodejsto a version that resolves this vulnerability.Fixed in 11.3.0 - Configuration
If security decisions are made based on the URL hostname, validate/normalize the URL scheme (e.g., handle mixed-case "javascript:") before using url.parse() results for authorization or filtering decisions.
Node.js URL parsing (url.parse()) javascript: protocol handling (mixed case) = Ensure applications do not rely on url.parse()’s parsed hostname for security decisions when the input URL may use mixed-case javascript: - Compensating control
Mitigate hostname spoofing by placing a load balancer or other proxy layer in front of the Node.js application, as stated that the attack potential is mitigated by such a proxy layer.
Event History
Frequently Asked Questions
What is the severity of CVE-2018-12123?
CVE-2018-12123 is considered a moderate severity vulnerability due to the potential for hostname spoofing in Node.js.
How do I fix CVE-2018-12123?
To mitigate CVE-2018-12123, upgrade Node.js to version 6.15.0, 8.14.0, 10.14.0, or 11.3.0 or later.
Which versions of Node.js are affected by CVE-2018-12123?
CVE-2018-12123 affects Node.js versions before 6.15.0, 8.14.0, 10.14.0, and 11.3.0.
What type of vulnerability is CVE-2018-12123?
CVE-2018-12123 is a hostname spoofing vulnerability in the URL parser of Node.js.
Who reported CVE-2018-12123?
CVE-2018-12123 was identified by the Node.js security team.