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.
{ "award": { "currency": "USD", "amount": "2540" }, "CWE": { "desc": "Allocation of Resources Without Limits or Throttling", "id": "CWE-770" }, "URL": "https://curl.se/docs/CVE-2023-38039.json", "package": "curl", "issue": "https://hackerone.com/reports/2072338", "severity": "Medium", "www": "https://curl.se/docs/CVE-2023-38039.html", "last_affected": "8.2.1", "affects": "both" }