CVE-2020-11080 Denial of service in nghttp2
A malicious client can cause a denial of service by sending oversized HTTP/2 SETTINGS frames, leading to high CPU usage.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2020-11080?
CVE-2020-11080 is a low-severity denial of service vulnerability in Debian Debian Linux, published on 3 Jun 2020. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
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 nghttp2_on_frame_recv_callback callback, and if received frame is SETTINGS frame and the number of settings entries are large (e.g., > 32), then drop the connection.
Which versions are affected by CVE-2020-11080?
2 open source packages ship an affected version, including node and node-min. It affects 10 products.
| Package | Affected | Fixed in |
|---|---|---|
node Bitnami | From 10.13.0 | 10.21.0, 12.18.0, 14.4.1 |
node-min Bitnami | From 10.0.0 | 10.12.1, 10.21.0, 12.12.1, 12.18.0, 14.4.1 |
Linux distribution packages (38)
libnghttp2 AlmaLinux:8 | All versions | 1.33.0-3.el8_2.1 |
libnghttp2-devel AlmaLinux:8 | All versions | 1.33.0-3.el8_2.1 |
nghttp2 AlmaLinux:8 | All versions | 1.33.0-3.el8_2.1 |
libnghttp2 Red Hat:enterprise_linux:8::baseos | All versions | 0:1.33.0-3.el8_2.1 |
libnghttp2-debuginfo Red Hat:enterprise_linux:8::baseos | All versions | 0:1.33.0-3.el8_2.1 |
nghttp2 Red Hat:enterprise_linux:8::baseos | All versions | 0:1.33.0-3.el8_2.1 |
nghttp2-debuginfo Red Hat:enterprise_linux:8::baseos | All versions | 0:1.33.0-3.el8_2.1 |
nghttp2-debugsource Red Hat:enterprise_linux:8::baseos | All versions | 0:1.33.0-3.el8_2.1 |
libnghttp2-debuginfo Red Hat:enterprise_linux:8::crb | All versions | 0:1.33.0-3.el8_2.1 |
libnghttp2-devel Red Hat:enterprise_linux:8::crb | All versions | 0:1.33.0-3.el8_2.1 |
nghttp2 Red Hat:enterprise_linux:8::crb | All versions | 0:1.33.0-3.el8_2.1 |
nghttp2-debuginfo Red Hat:enterprise_linux:8::crb | All versions | 0:1.33.0-3.el8_2.1 |
nghttp2-debugsource Red Hat:enterprise_linux:8::crb | All versions | 0:1.33.0-3.el8_2.1 |
libnghttp2 Red Hat:rhel_e4s:8.0::baseos | All versions | 0:1.33.0-1.el8_0.2 |
libnghttp2-debuginfo Red Hat:rhel_e4s:8.0::baseos | All versions | 0:1.33.0-1.el8_0.2 |
nghttp2 Red Hat:rhel_e4s:8.0::baseos | All versions | 0:1.33.0-1.el8_0.2 |
nghttp2-debuginfo Red Hat:rhel_e4s:8.0::baseos | All versions | 0:1.33.0-1.el8_0.2 |
nghttp2-debugsource Red Hat:rhel_e4s:8.0::baseos | All versions | 0:1.33.0-1.el8_0.2 |
libnghttp2 Red Hat:rhel_eus:8.1::baseos | All versions | 0:1.33.0-3.el8_1.1 |
libnghttp2-debuginfo Red Hat:rhel_eus:8.1::baseos | All versions | 0:1.33.0-3.el8_1.1 |
nghttp2 Red Hat:rhel_eus:8.1::baseos | All versions | 0:1.33.0-3.el8_1.1 |
nghttp2-debuginfo Red Hat:rhel_eus:8.1::baseos | All versions | 0:1.33.0-3.el8_1.1 |
nghttp2-debugsource Red Hat:rhel_eus:8.1::baseos | All versions | 0:1.33.0-3.el8_1.1 |
libnghttp2-debuginfo Red Hat:rhel_eus:8.1::crb | All versions | 0:1.33.0-3.el8_1.1 |
libnghttp2-devel Red Hat:rhel_eus:8.1::crb | All versions | 0:1.33.0-3.el8_1.1 |
nghttp2 Red Hat:rhel_eus:8.1::crb | All versions | 0:1.33.0-3.el8_1.1 |
nghttp2-debuginfo Red Hat:rhel_eus:8.1::crb | All versions | 0:1.33.0-3.el8_1.1 |
nghttp2-debugsource Red Hat:rhel_eus:8.1::crb | All versions | 0:1.33.0-3.el8_1.1 |
httpd24-libnghttp2 Red Hat:rhel_software_collections:3::el6 | All versions | 0:1.7.1-8.el6.1 |
httpd24-libnghttp2-devel Red Hat:rhel_software_collections:3::el6 | All versions | 0:1.7.1-8.el6.1 |
httpd24-nghttp2 Red Hat:rhel_software_collections:3::el6 | All versions | 0:1.7.1-8.el6.1 |
httpd24-nghttp2-debuginfo Red Hat:rhel_software_collections:3::el6 | All versions | 0:1.7.1-8.el6.1 |
httpd24-libnghttp2 Red Hat:rhel_software_collections:3::el7 | All versions | 0:1.7.1-8.el7.1 |
httpd24-libnghttp2-devel Red Hat:rhel_software_collections:3::el7 | All versions | 0:1.7.1-8.el7.1 |
httpd24-nghttp2 Red Hat:rhel_software_collections:3::el7 | All versions | 0:1.7.1-8.el7.1 |
httpd24-nghttp2-debuginfo Red Hat:rhel_software_collections:3::el7 | All versions | 0:1.7.1-8.el7.1 |
servicemesh-proxy Red Hat:service_mesh:1.0::el8 | All versions | 0:1.0.10-3.el8 |
servicemesh-proxy Red Hat:service_mesh:1.1::el8 | All versions | 0:1.1.2-3.el8 |
Products include Debian Debian Linux, Fedoraproject Fedora, Nghttp2 Nghttp2, Nodejs Node.js, Opensuse Leap, Oracle Banking Extensibility Workbench and 4 more.
How do I fix CVE-2020-11080?
Upgrade node to a fixed version for your release line: 10.21.0, 12.18.0 or 14.4.1.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2020-11080 being exploited?
There is no known exploitation of CVE-2020-11080 in the wild and no public exploit code.
Other vulnerabilities in Debian Debian Linux
Sources
Also known as ALPINE-CVE-2020-11080, ALSA-2020:2755, BIT-node-2020-11080, BIT-node-min-2020-11080, CLEANSTART-2024-IB47069, CLEANSTART-2026-OX53769 and 17 more.