Impact
The vulnerability allows an attacker-controlled HTTP server to send response bodies that decompress to an excessively large amount of data, exhausting the memory of a Req client process. Req automatically decodes archive formats such as ZIP, TAR, and GZIP and decompresses content-encoding chains, but the default pipelines have no limits on either the number of entries or the total size of the decompressed data. By controlling the Content-Type or Content-Encoding headers, an attacker can cause a sub-megabyte response to inflate to several gigabytes, leading to a denial-of-service crash of the BEAM process.
Affected Systems
The issue affects the wojtekmach Req HTTP client, a library for Erlang/Elixir used in many projects. All releases from version 0.1.0 up to, but not including, 0.6.1 are vulnerable. The library is identified in CNA data as wojtekmach:req.
Risk and Exploitability
The CVSS score of 8.2 indicates a high severity exploit. EPSS data is currently unavailable, and the vulnerability is not listed in the CISA KEV catalog. The attack requires only that the client contact an HTTP server that supplies a compressed response with Content-Type or Content-Encoding headers that trigger the auto-decode pipeline. An attacker can trigger the bug by hosting a specially crafted Zip, Tar, or Gzip payload or by chaining multiple gzip encodings. The exploit is remote, does not require privileged access to the client, and can be performed by any network attacker able to influence the server's response.
OpenCVE Enrichment