CVE-2020-11080: Denial of service in nghttp2

Published Jun 2, 2020
·
Updated

A resource consumption vulnerability was found in nghttp2. This flaw allows an attacker to repeatedly construct an overly large HTTP/2 SETTINGS frame with a length of 14,400 bytes that causes excessive CPU usage, leading to a denial of service.

Other sources

In nghttp2 before version 1.41.0, if an overly large HTTP/2 SETTINGS frame with a length of 14,400 bytes is repeatedly constructed it can cause the CPU to spike to 100% and cause a DoS.

— Red Hat

In nghttp2 before version 1.41.0, the overly large HTTP/2 SETTINGS frame payload causes denial of service. The proof of concept attack involves a malicious client constructing a SETTINGS frame with a length of 14,400 bytes (2400 individual settings entries) over and over again. The attack causes the CPU to spike at 100%. nghttp2 v1.41.0 fixes this vulnerability. There is a workaround to this vulnerability. Implement nghttp2onframerecvcallback callback, and if received frame is SETTINGS frame and the number of settings entries are large (e.g., > 32), then drop the connection.

Receiving unreasonably large HTTP/2 SETTINGS frames can consume 100% CPU to process all the settings, blocking all other activities until complete.

The HTTP/2 session frame is limited to 32 settings by default. This can be configured if necessary using the maxSettings option.

— Node.Js

Affected Software

93 affected componentsFixes available
redhat/jbcs-httpd24-curl<0:7.64.1-36.jbcs.el6
0:7.64.1-36.jbcs.el6
redhat/jbcs-httpd24-httpd<0:2.4.37-57.jbcs.el6
0:2.4.37-57.jbcs.el6
redhat/jbcs-httpd24-nghttp2<0:1.39.2-25.jbcs.el6
0:1.39.2-25.jbcs.el6
redhat/jbcs-httpd24-curl<0:7.64.1-36.jbcs.el7
0:7.64.1-36.jbcs.el7
redhat/jbcs-httpd24-httpd<0:2.4.37-57.jbcs.el7
0:2.4.37-57.jbcs.el7
redhat/jbcs-httpd24-nghttp2<0:1.39.2-25.jbcs.el7
0:1.39.2-25.jbcs.el7
redhat/jbcs-httpd24-openssl-pkcs11<0:0.4.10-7.jbcs.el7
0:0.4.10-7.jbcs.el7
redhat/servicemesh-proxy<0:1.0.10-3.el8
0:1.0.10-3.el8
redhat/servicemesh-proxy<0:1.1.2-3.el8
0:1.1.2-3.el8
redhat/nghttp2<0:1.33.0-3.el8_2.1
0:1.33.0-3.el8_2.1
redhat/nghttp2<0:1.33.0-1.el8_0.2
0:1.33.0-1.el8_0.2
redhat/nghttp2<0:1.33.0-3.el8_1.1
0:1.33.0-3.el8_1.1
redhat/httpd24-nghttp2<0:1.7.1-8.el6.1
0:1.7.1-8.el6.1
redhat/httpd24-nghttp2<0:1.7.1-8.el7.1
0:1.7.1-8.el7.1
redhat/rh-nodejs12-nodejs<0:12.18.2-1.el7
0:12.18.2-1.el7
redhat/rh-nodejs10-nodejs<0:10.21.0-3.el7
0:10.21.0-3.el7
debian/nodejs<=10.20.1~dfsg-1, <=10.19.0~dfsg1-1
10.21.0~dfsg-112.18.0~dfsg-110.21.0~dfsg-1~deb10u1
debian/nghttp2<=1.36.0-2+deb10u1
1.36.0-2+deb10u21.43.0-11.52.0-11.58.0-1
debian/nodejs
10.24.0~dfsg-1~deb10u110.24.0~dfsg-1~deb10u312.22.12~dfsg-1~deb11u418.13.0+dfsg1-1
redhat/nghttp2<1.41.0
1.41.0
redhat/node<10.21.0
10.21.0
redhat/node<12.18.0
12.18.0
redhat/node<14.4.0
14.4.0
nghttp2 nghttp2<1.41.0
Debian Debian Linux=9.0
Debian Debian Linux=10.0
openSUSE Leap=15.1
Fedoraproject Fedora=31
Fedoraproject Fedora=33
Oracle Banking Extensibility Workbench=14.3.0
Oracle Banking Extensibility Workbench=14.4.0
Oracle Blockchain Platform<21.1.2
Oracle Enterprise Communications Broker=3.1.0
Oracle Enterprise Communications Broker=3.2.0
Oracle GraalVM=19.3.2
Oracle GraalVM=20.1.0
Oracle MySQL>=7.3.0<=7.3.30
Oracle MySQL>=7.4.0<=7.4.29
Oracle MySQL>=7.5.0<=7.5.19
Oracle MySQL>=7.6.0<=7.6.15
Oracle MySQL>=8.0.0<=8.0.21
Nodejs Node.js>=10.0.0<=10.12.0
Nodejs Node.js>=10.13.0<10.21.0
Nodejs Node.js>=12.0.0<=12.12.0
Nodejs Node.js>=12.13.0<12.18.0
Nodejs Node.js>=14.0.0<=14.4.0
Node.js Node.js>=10.0.0<10.21.0, >=12.0.0<12.18.0, >=14.0.0<14.4.0
10.21.012.18.014.4.0
Node.js Node.js>=10.0.0<10.21.0
10.21.0
Node.js Node.js>=12.0.0<12.18.0
12.18.0
Node.js Node.js>=14.0.0<14.4.0
14.4.0
alpine/nghttp2<1.39.2-r1
1.39.2-r1
alpine/nghttp2<1.40.0-r1
1.40.0-r1
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.41.0-r0
1.41.0-r0
alpine/nghttp2<1.35.1-r2
1.35.1-r2
alpine/nodejs<12.20.1-r0
12.20.1-r0
alpine/nodejs<12.18.3-r0
12.18.3-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs<12.18.0-r0
12.18.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0
alpine/nodejs-current<14.4.0-r0
14.4.0-r0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade redhat/jbcs-httpd24-curl to a version that resolves this vulnerability.

    Fixed in 0:7.64.1-36.jbcs.el6
  2. Upgrade

    Upgrade redhat/jbcs-httpd24-httpd to a version that resolves this vulnerability.

    Fixed in 0:2.4.37-57.jbcs.el6
  3. Upgrade

    Upgrade redhat/jbcs-httpd24-nghttp2 to a version that resolves this vulnerability.

    Fixed in 0:1.39.2-25.jbcs.el6
  4. Upgrade

    Upgrade redhat/jbcs-httpd24-curl to a version that resolves this vulnerability.

    Fixed in 0:7.64.1-36.jbcs.el7
  5. Upgrade

    Upgrade redhat/jbcs-httpd24-httpd to a version that resolves this vulnerability.

    Fixed in 0:2.4.37-57.jbcs.el7
  6. Upgrade

    Upgrade redhat/jbcs-httpd24-nghttp2 to a version that resolves this vulnerability.

    Fixed in 0:1.39.2-25.jbcs.el7
  7. Upgrade

    Upgrade redhat/jbcs-httpd24-openssl-pkcs11 to a version that resolves this vulnerability.

    Fixed in 0:0.4.10-7.jbcs.el7
  8. Upgrade

    Upgrade redhat/servicemesh-proxy to a version that resolves this vulnerability.

    Fixed in 0:1.0.10-3.el8
  9. Upgrade

    Upgrade redhat/servicemesh-proxy to a version that resolves this vulnerability.

    Fixed in 0:1.1.2-3.el8
  10. Upgrade

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

    Fixed in 0:1.33.0-3.el8_2.1
  11. Upgrade

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

    Fixed in 0:1.33.0-1.el8_0.2
  12. Upgrade

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

    Fixed in 0:1.33.0-3.el8_1.1
  13. Upgrade

    Upgrade redhat/httpd24-nghttp2 to a version that resolves this vulnerability.

    Fixed in 0:1.7.1-8.el6.1
  14. Upgrade

    Upgrade redhat/httpd24-nghttp2 to a version that resolves this vulnerability.

    Fixed in 0:1.7.1-8.el7.1
  15. Upgrade

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

    Fixed in 0:12.18.2-1.el7
  16. Upgrade

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

    Fixed in 0:10.21.0-3.el7
  17. Upgrade

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

    Fixed in 10.21.0~dfsg-1Fixed in 12.18.0~dfsg-1Fixed in 10.21.0~dfsg-1~deb10u1
  18. Upgrade

    Upgrade debian/nghttp2 to a version that resolves this vulnerability.

    Fixed in 1.36.0-2+deb10u2Fixed in 1.43.0-1Fixed in 1.52.0-1Fixed in 1.58.0-1
  19. Upgrade

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

    Fixed in 10.24.0~dfsg-1~deb10u1Fixed in 10.24.0~dfsg-1~deb10u3Fixed in 12.22.12~dfsg-1~deb11u4Fixed in 18.13.0+dfsg1-1
  20. Upgrade

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

    Fixed in 1.41.0
  21. Upgrade

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

    Fixed in 10.21.0
  22. Upgrade

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

    Fixed in 12.18.0
  23. Upgrade

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

    Fixed in 14.4.0
  24. Upgrade

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

    Fixed in 10.21.0Fixed in 12.18.0Fixed in 14.4.0
  25. Upgrade

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

    Fixed in 10.21.0
  26. Upgrade

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

    Fixed in 12.18.0
  27. Upgrade

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

    Fixed in 14.4.0
  28. Upgrade

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

    Fixed in 1.39.2-r1
  29. Upgrade

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

    Fixed in 1.40.0-r1
  30. Upgrade

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

    Fixed in 1.41.0-r0
  31. Upgrade

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

    Fixed in 1.35.1-r2
  32. Upgrade

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

    Fixed in 12.20.1-r0
  33. Upgrade

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

    Fixed in 12.18.3-r0
  34. Upgrade

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

    Fixed in 12.18.0-r0
  35. Upgrade

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

    Fixed in 14.4.0-r0
  36. Upgrade

    Upgrade nghttp2 to a version that resolves this vulnerability.

    Fixed in 1.41.0
  37. Configuration

    Configure maxSettings to limit HTTP/2 SETTINGS frames to 32 settings entries.

    nghttp2 maxSettings = 32

Event History

Jun 2, 2020
CVE Published
12:00 AM
Data Sourced
via Node.js·12:00 PM
DescriptionSeverityAffected Software
Jun 3, 2020
CVE Published
via MITRE·12:00 AM
Data Sourced
via MITRE·12:00 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·11:15 PM
RemedyDescriptionSeverityWeaknessAffected Software
Data Sourced
via OSV·11:15 PM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2020-11080?

The severity of CVE-2020-11080 is classified as a denial of service vulnerability due to excessive CPU consumption.

2

How do I fix CVE-2020-11080?

To fix CVE-2020-11080, update nghttp2 to version 1.41.0 or later.

3

Which versions of nghttp2 are affected by CVE-2020-11080?

CVE-2020-11080 affects nghttp2 versions prior to 1.41.0.

4

What type of vulnerability is CVE-2020-11080?

CVE-2020-11080 is a resource consumption vulnerability allowing for denial of service.

5

Is this vulnerability specific to certain operating systems or distributions?

Yes, CVE-2020-11080 affects multiple Red Hat and Debian distributions.

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