IM
IronMonkey Threat Research

CVE-2020-11080 HIGH

Published: 2020-06-03 | Last Modified: 2024-11-21 | Status: Modified

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.

Additional Descriptions (1)

En nghttp2 versiones anteriores a 1.41.0, la carga útil de la trama HTTP/2 SETTINGS demasiado grande causa una denegación de servicio. El ataque de prueba de concepto involucra a un cliente malicioso que construye una trama SETTINGS con una longitud de 14,400 bytes (2400 entradas de configuraciones individuales) una y otra vez. El ataque causa que la CPU se aumente al 100%. nghttp2 versión v1.41.0 corrige esta vulnerabilidad. Existe una solución alternativa a esta vulnerabilidad. Implemente la función nghttp2_on_frame_recv_callback callback, y si la trama es recibida es la trama SETTINGS y el número de entradas de configuración es grande (por ejemplo, mayor a 32), luego desconecte la conexión

CVSS Metrics

Base Score: 7.5 (HIGH)

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Attack VectorNETWORK
Attack ComplexityLOW
Privileges RequiredNONE
User InteractionNONE
ScopeUNCHANGED
Confidentiality ImpactNONE
Integrity ImpactNONE
Availability ImpactHIGH

Source: [email protected]

Type: Primary

Exploitability Score: 3.9

Impact Score: 3.6

Base Score: 5.0 (MEDIUM)

AV:N/AC:L/Au:N/C:N/I:N/A:P

Access VectorNETWORK
Access ComplexityLOW
AuthenticationNONE
Confidentiality ImpactNONE
Integrity ImpactNONE
Availability ImpactPARTIAL

Source: [email protected]

Type: Primary

Exploitability Score: 10.0

Impact Score: 2.9

Weaknesses

Source Type Description
[email protected] Secondary
en CWE-707
[email protected] Primary
en CWE-400

Affected Products

Vendor Product Version Update Type
nghttp2 nghttp2 * <built-in method update of dict object at 0x72a9b0d8e100> Application
debian debian_linux 9.0 <built-in method update of dict object at 0x72a9b0d8cf00> Operating System
debian debian_linux 10.0 <built-in method update of dict object at 0x72a9b0d8f940> Operating System
opensuse leap 15.1 <built-in method update of dict object at 0x72a9b0d8f240> Operating System
fedoraproject fedora 31 <built-in method update of dict object at 0x72a9b0d8c6c0> Operating System
fedoraproject fedora 33 <built-in method update of dict object at 0x72a9b0d8d440> Operating System
oracle banking_extensibility_workbench 14.3.0 <built-in method update of dict object at 0x72a9b0a80980> Application
oracle banking_extensibility_workbench 14.4.0 <built-in method update of dict object at 0x72a9b0d8fd00> Application
oracle blockchain_platform * <built-in method update of dict object at 0x72a9b0d8fd80> Application
oracle enterprise_communications_broker 3.1.0 <built-in method update of dict object at 0x72a9b0d8f000> Application
oracle enterprise_communications_broker 3.2.0 <built-in method update of dict object at 0x72a9b0d8cb00> Application
oracle graalvm 19.3.2 <built-in method update of dict object at 0x72a9b0d8f1c0> Application
oracle graalvm 20.1.0 <built-in method update of dict object at 0x72a9b0d8df00> Application
oracle mysql * <built-in method update of dict object at 0x72a9cc7500c0> Application
oracle mysql * <built-in method update of dict object at 0x72a9cc747740> Application
oracle mysql * <built-in method update of dict object at 0x72a9b0d8fb80> Application
oracle mysql * <built-in method update of dict object at 0x72a9b0d8d340> Application
oracle mysql * <built-in method update of dict object at 0x72a9b0d8e5c0> Application
nodejs node.js * <built-in method update of dict object at 0x72a9b0d8f700> Application
nodejs node.js * <built-in method update of dict object at 0x72a9b0d8d740> Application
nodejs node.js * <built-in method update of dict object at 0x72a9cc744040> Application
nodejs node.js * <built-in method update of dict object at 0x72a9b0d8ccc0> Application
nodejs node.js * <built-in method update of dict object at 0x72a9b0a83d40> Application

Affected Configurations

Operator: OR

Vulnerable CPE
Yes cpe:2.3:a:nghttp2:nghttp2:*:*:*:*:*:*:*:*

Operator: OR

Vulnerable CPE
Yes cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*
Yes cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*

Operator: OR

Vulnerable CPE
Yes cpe:2.3:o:opensuse:leap:15.1:*:*:*:*:*:*:*

Operator: OR

Vulnerable CPE
Yes cpe:2.3:o:fedoraproject:fedora:31:*:*:*:*:*:*:*
Yes cpe:2.3:o:fedoraproject:fedora:33:*:*:*:*:*:*:*

Operator: OR

Vulnerable CPE
Yes cpe:2.3:a:oracle:banking_extensibility_workbench:14.3.0:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:banking_extensibility_workbench:14.4.0:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:blockchain_platform:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:enterprise_communications_broker:3.1.0:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:enterprise_communications_broker:3.2.0:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:graalvm:19.3.2:*:*:*:enterprise:*:*:*
Yes cpe:2.3:a:oracle:graalvm:20.1.0:*:*:*:enterprise:*:*:*
Yes cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*
Yes cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*

Operator: OR

Vulnerable CPE
Yes cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*
Yes cpe:2.3:a:nodejs:node.js:*:*:*:*:lts:*:*:*
Yes cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*
Yes cpe:2.3:a:nodejs:node.js:*:*:*:*:lts:*:*:*
Yes cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*

References

Notification
Message here