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