CVE-2018-12122: "Slowloris" HTTP Denial of Service

Published Nov 27, 2018
·
Updated

A flaw was found in Node.js versions before 6.15.0, 8.14.0, 10.14.0 and 11.3.0. A 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.

References: https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/

Other sources

Categorization: Uncontrolled Resource Consumption / Denial of Service (CWE-400)

All versions of Node.js 6 and later are vulnerable and the severity is LOW. 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. Attack potential is mitigated by the use of a load balancer or other proxy layer.

A timeout of 40 seconds now applies to servers receiving HTTP headers. This value can be adjusted with server.headersTimeout. Where headers are not completely received within this period, the socket is destroyed on the next received chunk. In conjunction with server.setTimeout(), this aids in protecting against excessive resource retention and possible Denial of Service.

Reported by Jan Maybach (liebdich.com), fixed by Matteo Collina.

All versions of Node.js 6 (LTS "Boron") are vulnerable

All versions of Node.js 8 (LTS "Carbon") are vulnerable

All versions of Node.js 10 (LTS "Dubnium") are vulnerable

All versions of Node.js 11 (Current) are vulnerable

— Node.Js

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

57 affected componentsFixes available
Nodejs Node.js>=6.0.0<6.15.1
Nodejs Node.js>=8.0.0<8.14.0
Nodejs Node.js>=10.0.0<10.14.0
Nodejs Node.js>=11.0.0<11.3.0
SUSE Suse Enterprise Storage=4
SUSE SUSE Linux Enterprise Server=12
SUSE SUSE Linux Enterprise Server=15
SUSE Suse Openstack Cloud=7
SUSE Suse Openstack Cloud=8
F5 BIG-IP=17.5.0, >=17.1.0<=17.1.2
17.5.117.1.3
F5 BIG-IP>=16.1.0<=16.1.6
F5 BIG-IP>=15.1.0<=15.1.10
F5 BIG-IP>=14.1.0<=14.1.5
F5 BIG-IP>=13.1.0<=13.1.5
F5 BIG-IQ Centralized Management>=8.0.0<=8.4.0
8.4.1
redhat/nodejs<6.15.1
6.15.1
redhat/nodejs<8.14.0
8.14.0
redhat/nodejs<10.14.0
10.14.0
redhat/nodejs<11.3.0
11.3.0
Node.js Node.js>=6.0.0<6.15.0, >=8.0.0<8.14.0, >=10.0.0<10.14.0, >=11.0.0<11.3.0
6.15.08.14.010.14.011.3.0
Node.js Node.js>=10.0.0<10.14.0
10.14.0
Node.js Node.js>=11.0.0<11.3.0
11.3.0
Node.js Node.js>=6.0.0<6.15.0
6.15.0
Node.js Node.js>=8.0.0<8.14.0
8.14.0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs<8.14.0-r0
8.14.0-r0
alpine/nodejs<10.14.0-r0
10.14.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0
alpine/nodejs-current<11.3.0-r0
11.3.0-r0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

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

    Fixed in 17.5.117.1.3
  2. Upgrade

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

    Fixed in 8.4.1
  3. Upgrade

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

    Fixed in 6.15.1
  4. Upgrade

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

    Fixed in 8.14.0
  5. Upgrade

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

    Fixed in 10.14.0
  6. Upgrade

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

    Fixed in 11.3.0
  7. Upgrade

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

    Fixed in 6.15.0Fixed in 8.14.0Fixed in 10.14.0Fixed in 11.3.0
  8. Upgrade

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

    Fixed in 10.14.0
  9. Upgrade

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

    Fixed in 11.3.0
  10. Upgrade

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

    Fixed in 6.15.0
  11. Upgrade

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

    Fixed in 8.14.0
  12. Upgrade

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

    Fixed in 10.14.0-r0
  13. Upgrade

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

    Fixed in 8.14.0-r0
  14. Upgrade

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

    Fixed in 11.3.0-r0
  15. Upgrade

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

    Fixed in 6.15.0
  16. Upgrade

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

    Fixed in 8.14.0
  17. Upgrade

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

    Fixed in 10.14.0
  18. Upgrade

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

    Fixed in 11.3.0
  19. Configuration

    Set the HTTP headers timeout to 40 seconds; sockets are destroyed when headers are not completely received within this period.

    Node.js HTTP server server.headersTimeout = 40 seconds
  20. Compensating control

    Use a load balancer or other proxy layer to mitigate Slowloris attack potential.

Event History

Nov 27, 2018
CVE Published
via Node.js·12:00 AM
Data Sourced
via Node.js·12:00 AM
DescriptionSeverityWeaknessAffected Software
Nov 28, 2018
CVE Published
via MITRE·05:00 PM
Data Sourced
via MITRE·05:00 PM
DescriptionWeakness
Data Sourced
via NVD·05:29 PM
RemedyDescriptionSeverityWeaknessAffected Software
Data Sourced
via OSV·05:29 PM
DescriptionSeverityAffected Software
Dec 19, 2018
Data Sourced
via Red Hat·07:49 PM
DescriptionSeverityAffected Software
Oct 2, 2023
Advisory Published
via F5·06:55 PM
Data Sourced
via F5·06:55 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the vulnerability ID of this Node.js vulnerability?

The vulnerability ID of this Node.js vulnerability is CVE-2018-12122.

2

What is the title of this Node.js vulnerability?

The title of this Node.js vulnerability is 'Slowloris HTTP Denial of Service.'

3

What is the severity of CVE-2018-12122?

CVE-2018-12122 has a severity rating of high (7.5).

4

How does this vulnerability affect Node.js?

This vulnerability affects all versions of Node.js prior to 6.15.0, 8.14.0, 10.14.0, and 11.3.0.

5

How can I fix the CVE-2018-12122 vulnerability?

To fix the CVE-2018-12122 vulnerability, you should update Node.js to version 6.15.1, 8.14.0, 10.14.0, or 11.3.0 depending on your version.

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