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.
https://www.cisa.gov/news-events/ics-advisories/icsa-24-319-16
https://www.cisa.gov/news-events/ics-advisories/icsa-24-319-04
https://www.cisa.gov/news-events/ics-advisories/icsa-24-256-10
https://support.apple.com/en-us/HT214118
https://support.apple.com/kb/HT214120
https://support.apple.com/kb/HT214119
https://support.apple.com/kb/HT214118
https://security.netapp.com/advisory/ntap-20240503-0009/
https://hackerone.com/reports/2402845
https://curl.se/docs/CVE-2024-2398.json
https://curl.se/docs/CVE-2024-2398.html
http://www.openwall.com/lists/oss-security/2024/03/27/3
http://seclists.org/fulldisclosure/2024/Jul/20