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