Project curl Security Advisory, June 27th 2022 -Permalink
curl supports "chained" HTTP compression algorithms, meaning that aserver response can be compressed multiple times and potentially withdifferent algorithms. The number of acceptable "links" in this"decompression chain" was unbounded, allowing a malicious server toinsert a virtually unlimited number of compression steps.
The use of such a decompression chain could result in a "mallocbomb", making curl end up spending enormous amounts of allocated heapmemory, or trying to and returning out of memory errors.
Automatic content decompression of content needs to be enabled pertransfer but the way Transfer-Encoding works in curl this code path andproblem can be reached with default options.
This flaw exists with just one of the compression algorithms built-in(gzip, brotli or zstd), but the individual algorithms have different"exploding" powers.
BothContent-Encoding:
andTransfer-Encoding:
are affected. The vulnerability is moreemphasized over HTTP/1 than HTTP/2 due to different curl internal headerlimits.
CWE-770: Allocation of Resources Without Limits or Throttling
Severity: Medium
libcurl is used by many applications, but not always advertised assuch!
The amount of accepted "chained" algorithms is now capped to 5.
A - Upgrade curl to version7.84.0
B - Apply the patch to your local version
This issue was reported to the curl project on May 15, 2022. Wecontacted distros@openwall on June 20.
libcurl7.84.0 was released on June 27 2022, coordinated with thepublication of this advisory.
Thanks a lot!