CVE-2023-36478
HTTP/2 HPACK integer overflow and buffer allocation
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
Descriptions
Eclipse Jetty provides a web server and servlet container. In versions 11.0.0 through 11.0.15, 10.0.0 through 10.0.15, and 9.0.0 through 9.4.52, an integer overflow in `MetaDataBuilder.checkSize` allows for HTTP/2 HPACK header values to
exceed their size limit. `MetaDataBuilder.java` determines if a header name or value exceeds the size limit, and throws an exception if the limit is exceeded. However, when length is very large and huffman is true, the multiplication by 4 in line 295
will overflow, and length will become negative. `(_size+length)` will now be negative, and the check on line 296 will not be triggered. Furthermore, `MetaDataBuilder.checkSize` allows for user-entered HPACK header value sizes to be negative, potentially leading to a very large buffer allocation later on when the user-entered size is multiplied by 2. This means that if a user provides a negative length value (or, more precisely, a length value which, when multiplied by the 4/3 fudge factor, is negative), and this length value is a very large positive number when multiplied by 2, then the user can cause a very large buffer to be allocated on the server. Users of HTTP/2 can be impacted by a remote denial of service attack. The issue has been fixed in versions 11.0.16, 10.0.16, and 9.4.53. There are no known workarounds.
Eclipse Jetty proporciona un servidor web y un contenedor de servlets. En las versiones 11.0.0 a 11.0.15, 10.0.0 a 10.0.15 y 9.0.0 a 9.4.52, un desbordamiento de enteros en `MetaDataBuilder.checkSize` permite que los valores del encabezado HTTP/2 HPACK excedan su límite de tamaño. `MetaDataBuilder.java` determina si el nombre o valor de un encabezado excede el límite de tamaño y genera una excepción si se excede el límite. Sin embargo, cuando la longitud es muy grande y Huffman es verdadera, la multiplicación por 4 en la línea 295 se desbordará y la longitud se volverá negativa. `(_size+length)` ahora será negativo y la verificación en la línea 296 no se activará. Además, `MetaDataBuilder.checkSize` permite que los tamaños de los valores del encabezado HPACK ingresados por el usuario sean negativos, lo que podría generar una asignación de búfer muy grande más adelante cuando el tamaño ingresado por el usuario se multiplique por 2. Esto significa que si un usuario proporciona un tamaño con valor de longitud negativo (o, más precisamente, un valor de longitud que, cuando se multiplica por el factor de manipulación 4/3, es negativo), y este valor de longitud es un número positivo muy grande cuando se multiplica por 2, entonces el usuario puede causar un valor de longitud muy grande de búfer que se asignará en el servidor. Los usuarios de HTTP/2 pueden verse afectados por un ataque remoto de denegación de servicio. El problema se solucionó en las versiones 11.0.16, 10.0.16 y 9.4.53. No se conocen workarounds.
A flaw was found in Jetty http2-hpack and http3-qpack. If header values exceed the size limit and Huffman is the true`MetaDataBuilder.checkSize`, the multiplication will overflow, and the length will become negative, causing a large buffer allocation on the server, leading to a Denial of Service (DoS) attack.
CVSS Scores
SSVC
- Decision:-
Timeline
- 2023-06-21 CVE Reserved
- 2023-10-10 CVE Published
- 2024-08-02 CVE Updated
- 2024-08-02 First Exploit
- 2024-11-11 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-190: Integer Overflow or Wraparound
- CWE-400: Uncontrolled Resource Consumption
CAPEC
References (12)
URL | Tag | Source |
---|---|---|
http://www.openwall.com/lists/oss-security/2023/10/18/4 | Mailing List | |
https://github.com/eclipse/jetty.project/releases/tag/jetty-10.0.16 | Release Notes | |
https://github.com/eclipse/jetty.project/releases/tag/jetty-11.0.16 | Release Notes | |
https://github.com/eclipse/jetty.project/releases/tag/jetty-9.4.53.v20231009 | Release Notes | |
https://lists.debian.org/debian-lts-announce/2023/10/msg00045.html | Mailing List | |
https://security.netapp.com/advisory/ntap-20231116-0011 | Third Party Advisory | |
https://security.netapp.com/advisory/ntap-20240621-0006 | ||
https://www.debian.org/security/2023/dsa-5540 | Third Party Advisory |
URL | Date | SRC |
---|---|---|
https://github.com/eclipse/jetty.project/security/advisories/GHSA-wgh7-54f2-x98r | 2024-08-02 |
URL | Date | SRC |
---|---|---|
https://github.com/eclipse/jetty.project/pull/9634 | 2024-06-21 |
URL | Date | SRC |
---|---|---|
https://access.redhat.com/security/cve/CVE-2023-36478 | 2024-05-23 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2243123 | 2024-05-23 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Eclipse Search vendor "Eclipse" | Jetty Search vendor "Eclipse" for product "Jetty" | >= 9.3.0 < 9.4.53 Search vendor "Eclipse" for product "Jetty" and version " >= 9.3.0 < 9.4.53" | - |
Affected
| ||||||
Eclipse Search vendor "Eclipse" | Jetty Search vendor "Eclipse" for product "Jetty" | >= 10.0.0 < 10.0.16 Search vendor "Eclipse" for product "Jetty" and version " >= 10.0.0 < 10.0.16" | - |
Affected
| ||||||
Eclipse Search vendor "Eclipse" | Jetty Search vendor "Eclipse" for product "Jetty" | >= 11.0.0 < 11.0.16 Search vendor "Eclipse" for product "Jetty" and version " >= 11.0.0 < 11.0.16" | - |
Affected
| ||||||
Jenkins Search vendor "Jenkins" | Jenkins Search vendor "Jenkins" for product "Jenkins" | < 2.414.3 Search vendor "Jenkins" for product "Jenkins" and version " < 2.414.3" | lts |
Affected
| ||||||
Jenkins Search vendor "Jenkins" | Jenkins Search vendor "Jenkins" for product "Jenkins" | < 2.428 Search vendor "Jenkins" for product "Jenkins" and version " < 2.428" | - |
Affected
| ||||||
Debian Search vendor "Debian" | Debian Linux Search vendor "Debian" for product "Debian Linux" | 10.0 Search vendor "Debian" for product "Debian Linux" and version "10.0" | - |
Affected
| ||||||
Debian Search vendor "Debian" | Debian Linux Search vendor "Debian" for product "Debian Linux" | 11.0 Search vendor "Debian" for product "Debian Linux" and version "11.0" | - |
Affected
| ||||||
Debian Search vendor "Debian" | Debian Linux Search vendor "Debian" for product "Debian Linux" | 12.0 Search vendor "Debian" for product "Debian Linux" and version "12.0" | - |
Affected
|