When curl retrieves an HTTP response, it stores the incoming headers so that they can be accessed later via the libcurl headers API.
However, curl did not have a limit on the size or quantity of headers it would accept in a response, allowing a malicious server to stream an endless series of headers to a client and eventually cause curl to run out of heap memory.
{ "CWE": { "id": "CWE-770", "desc": "Allocation of Resources Without Limits or Throttling" }, "award": { "amount": "2540", "currency": "USD" }, "URL": "https://curl.se/docs/CVE-2023-38039.json", "package": "curl", "severity": "Medium", "issue": "https://hackerone.com/reports/2072338", "www": "https://curl.se/docs/CVE-2023-38039.html", "last_affected": "8.2.1" }