CVE-2024-30255
HTTP/2: CPU exhaustion due to CONTINUATION frame flood
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
2Exploited in Wild
-Decision
Descriptions
Envoy is a cloud-native, open source edge and service proxy. The HTTP/2 protocol stack in Envoy versions prior to 1.29.3, 1.28.2, 1.27.4, and 1.26.8 are vulnerable to CPU exhaustion due to flood of CONTINUATION frames. Envoy's HTTP/2 codec allows the client to send an unlimited number of CONTINUATION frames even after exceeding Envoy's header map limits. This allows an attacker to send a sequence of CONTINUATION frames without the END_HEADERS bit set causing CPU utilization, consuming approximately 1 core per 300Mbit/s of traffic and culminating in denial of service through CPU exhaustion. Users should upgrade to version 1.29.3, 1.28.2, 1.27.4, or 1.26.8 to mitigate the effects of the CONTINUATION flood. As a workaround, disable HTTP/2 protocol for downstream connections.
Envoy es un proxy de servicio y borde de código abierto, nativo de la nube. La pila de protocolos HTTP/2 en las versiones de Envoy anteriores a 1.29.3, 1.28.2, 1.27.4 y 1.26.8 son vulnerables al agotamiento de la CPU debido a la inundación de tramas de CONTINUACIÓN. El códec HTTP/2 de Envoy permite al cliente enviar un número ilimitado de tramas de CONTINUACIÓN incluso después de exceder los límites del mapa de encabezado de Envoy. Esto permite a un atacante enviar una secuencia de tramas CONTINUATION sin que el bit END_HEADERS esté configurado causando la utilización de la CPU, consumiendo aproximadamente 1 núcleo por cada 300 Mbit/s de tráfico y culminando en una denegación de servicio por agotamiento de la CPU. Los usuarios deben actualizar a la versión 1.29.3, 1.28.2, 1.27.4 o 1.26.8 para mitigar los efectos de la inundación de CONTINUACIÓN. Como workaround, deshabilite el protocolo HTTP/2 para conexiones descendentes.
A vulnerability was found in how Envoy Proxy implements the HTTP/2 codec. There are insufficient limitations placed on the amount of CONTINUATION frames that can be sent within a single stream. This issue could allow an unauthenticated remote attacker to send packets to vulnerable servers, which could use up compute resources to cause a Denial of Service.
CVSS Scores
SSVC
- Decision:Attend
Timeline
- 2024-03-26 CVE Reserved
- 2024-04-04 CVE Published
- 2024-04-09 First Exploit
- 2024-05-02 EPSS Updated
- 2024-08-02 CVE Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-390: Detection of Error Condition Without Action
CAPEC
References (7)
URL | Date | SRC |
---|---|---|
https://github.com/lockness-Ko/CVE-2024-27316 | 2024-04-13 | |
https://github.com/blackmagic2023/Envoy-CPU-Exhaustion-Vulnerability-PoC | 2024-04-09 |
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://access.redhat.com/security/cve/CVE-2024-30255 | 2024-10-07 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2272986 | 2024-10-07 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Envoyproxy Search vendor "Envoyproxy" | Envoy Search vendor "Envoyproxy" for product "Envoy" | >= 1.29.0 < 1.29.3 Search vendor "Envoyproxy" for product "Envoy" and version " >= 1.29.0 < 1.29.3" | en |
Affected
| ||||||
Envoyproxy Search vendor "Envoyproxy" | Envoy Search vendor "Envoyproxy" for product "Envoy" | >= 1.28.0 < 1.28.2 Search vendor "Envoyproxy" for product "Envoy" and version " >= 1.28.0 < 1.28.2" | en |
Affected
| ||||||
Envoyproxy Search vendor "Envoyproxy" | Envoy Search vendor "Envoyproxy" for product "Envoy" | >= 1.27.0 < 1.27.4 Search vendor "Envoyproxy" for product "Envoy" and version " >= 1.27.0 < 1.27.4" | en |
Affected
| ||||||
Envoyproxy Search vendor "Envoyproxy" | Envoy Search vendor "Envoyproxy" for product "Envoy" | < 1.26.8 Search vendor "Envoyproxy" for product "Envoy" and version " < 1.26.8" | en |
Affected
|