cbcvebase.
CVE-2024-2398
published 2024-03-27

CVE-2024-2398: When an application tells libcurl it wants to allow HTTP/2 server push, and the amount of received headers for the push surpasses the maximum allowed limit…

PriorityP263high8.6CVSS 3.1
AVNACLPRNUINSUCHILAL
EPSS
36.08%
98.3th percentile
When an application tells libcurl it wants to allow HTTP/2 server push, and the amount of received headers for the push surpasses the maximum allowed limit (1000), libcurl aborts the server push. When aborting, libcurl inadvertently does not free all the previously allocated headers and instead leaks the memory. Further, this error condition fails silently and is therefore not easily detected by an application.

Affected

115 ranges· showing 25
VendorProductVersion rangeFixed in
applemacos< 12.7.612.7.6
applemacos>= 13.0 < 13.6.813.6.8
applemacos>= 14.0 < 14.614.6
applemacos_monterey
applemacos_sonoma
applemacos_ventura
curlcurl7.44.0 – 7.44.0
curlcurl7.45.0 – 7.45.0
curlcurl7.46.0 – 7.46.0
curlcurl7.47.0 – 7.47.0
curlcurl7.47.1 – 7.47.1
curlcurl7.48.0 – 7.48.0
curlcurl7.49.0 – 7.49.0
curlcurl7.49.1 – 7.49.1
curlcurl7.50.0 – 7.50.0
curlcurl7.50.1 – 7.50.1
curlcurl7.50.2 – 7.50.2
curlcurl7.50.3 – 7.50.3
curlcurl7.51.0 – 7.51.0
curlcurl7.52.0 – 7.52.0
curlcurl7.52.1 – 7.52.1
curlcurl7.53.0 – 7.53.0
curlcurl7.53.1 – 7.53.1
curlcurl7.54.0 – 7.54.0
curlcurl7.54.1 – 7.54.1

Detection & IOCsextracted from sources · hover to see the quote

  • Trigger condition: HTTP/2 server push is enabled in the application using libcurl, and the number of received push headers exceeds the maximum allowed limit of 1000, causing a silent memory leak (no error surfaced to the application).
  • Monitor for sustained or growing memory consumption in processes using libcurl with HTTP/2 server push enabled (CURLMOPT_PUSHFUNCTION / CURL_PUSH_OK), particularly when communicating with untrusted or external HTTP/2 servers — this may indicate exploitation of the header-count memory leak.
  • Affected protocol is HTTP/2 server push; detection should focus on HTTP/2 traffic (ALPN h2) where PUSH_PROMISE frames are sent with an abnormally large number of header fields (approaching or exceeding 1000 headers per push).
  • ·The vulnerability is only exploitable when the application explicitly opts in to HTTP/2 server push support in libcurl; applications that do not enable server push are not affected.
  • ·The error condition is silent — the memory leak is not surfaced to the calling application, making it difficult to detect via application-level logging alone; OS-level memory monitoring is required.
  • ·Hitachi Energy MSM versions 2.2.8 and earlier are confirmed affected embedded deployments; these ICS devices may not receive prompt patching and should be network-isolated as a priority mitigation.
  • ·Fixed Debian package versions are available: bookworm fixed in 7.88.1-10+deb12u6, bullseye fixed in 7.74.0-1.3+deb11u12, forky/sid/trixie fixed in 8.7.1-1. Deployments running older versions remain vulnerable.

CVSS provenance

nvdv3.18.6HIGHCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
osv8.6HIGH
vendor_debian8.6HIGH
vendor_msrc8.6HIGH
vendor_oracle8.6HIGH
vendor_redhat8.6HIGH
vendor_ubuntu8.6HIGH
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.