// For flags

CVE-2023-45802

Apache HTTP Server: HTTP/2 stream memory not reclaimed right away on RST

Severity Score

5.9
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

When a HTTP/2 stream was reset (RST frame) by a client, there was a time window were the request's memory resources were not reclaimed immediately. Instead, de-allocation was deferred to connection close. A client could send new requests and resets, keeping the connection busy and open and causing the memory footprint to keep on growing. On connection close, all resources were reclaimed, but the process might run out of memory before that.

This was found by the reporter during testing of CVE-2023-44487 (HTTP/2 Rapid Reset Exploit) with their own test client. During "normal" HTTP/2 use, the probability to hit this bug is very low. The kept memory would not become noticeable before the connection closes or times out.

Users are recommended to upgrade to version 2.4.58, which fixes the issue.

Cuando un cliente restablecía una secuencia HTTP/2 (trama RST), había una ventana de tiempo en la que los recursos de memoria de la solicitud no se recuperaban inmediatamente. En cambio, la desasignación se aplazó hasta el cierre de la conexión. Un cliente podría enviar nuevas solicitudes y reinicios, manteniendo la conexión ocupada y abierta y provocando que la huella de memoria siga creciendo. Al cerrar la conexión, se recuperaron todos los recursos, pero el proceso podría quedarse sin memoria antes de eso. El periodista descubrió esto durante la prueba de CVE-2023-44487 (HTTP/2 Rapid Reset Exploit) con su propio cliente de prueba. Durante el uso "normal" de HTTP/2, la probabilidad de encontrar este error es muy baja. La memoria guardada no se notará antes de que la conexión se cierre o se agote el tiempo de espera. Se recomienda a los usuarios actualizar a la versión 2.4.58, que soluciona el problema.

A flaw was found in mod_http2. When a HTTP/2 stream is reset (RST frame) by a client, there is a time window were the request's memory resources were not reclaimed immediately. Instead, de-allocation was deferred to connection close. A client could send new requests and resets, keeping the connection busy and open, causing the memory footprint to keep on growing. On connection close, all resources are reclaimed but the process might run out of memory before connection close.

*Credits: Will Dormann of Vul Labs, David Warren of Vul Labs
CVSS Scores
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2023-10-13 CVE Reserved
  • 2023-10-23 CVE Published
  • 2024-10-14 CVE Updated
  • 2024-10-29 EPSS Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-400: Uncontrolled Resource Consumption
  • CWE-404: Improper Resource Shutdown or Release
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Apache
Search vendor "Apache"
Http Server
Search vendor "Apache" for product "Http Server"
< 2.4.58
Search vendor "Apache" for product "Http Server" and version " < 2.4.58"
-
Affected
Fedoraproject
Search vendor "Fedoraproject"
Fedora
Search vendor "Fedoraproject" for product "Fedora"
38
Search vendor "Fedoraproject" for product "Fedora" and version "38"
-
Affected