CVE-2026-49755
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 36 - wyżej niż 36% wszystkich znanych CVE
Streszczenie
W bibliotece Req dla języka Elixir występuje podatność na atak typu decompression bomb. Serwer HTTP kontrolowany przez atakującego może wysłać silnie skompresowaną odpowiedź, która po dekompresji powoduje wyczerpanie pamięci klienta Req, prowadząc do awarii procesu BEAM.
Ocena ryzyka
Atakujący może zdalnie spowodować awarię aplikacji korzystającej z Req poprzez wysłanie odpowiedzi HTTP z wielowarstwową kompresją, co prowadzi do ataku DoS.
Rekomendacja
Należy zaktualizować bibliotekę Req do wersji 0.6.1 lub nowszej, która zawiera poprawkę ograniczającą rozmiar dekompresowanych danych.
Inne podatności w Req
Oryginalny opis (angielski, źródło NVD)
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in wojtekmach Req allows attacker-controlled HTTP servers to exhaust memory in a Req client via decompression-bomb response bodies. Req's default response pipeline includes Req.Steps.decode_body/1 and Req.Steps.decompress_body/1 in lib/req/steps.ex. decode_body/1 dispatches on the server-supplied content-type (or URL extension) and calls :zip.extract(body, [:memory]) for application/zip, :erl_tar.extract({:binary, body}, [:memory]) for application/x-tar, and :erl_tar.extract({:binary, body}, [:memory, :compressed]) for application/gzip / .tgz. Each returns the full decompressed archive contents as a [{name, bytes}] list in memory, with no per-entry or total size cap. decompress_body/1 walks the content-encoding header and chains :zlib/:brotli/:ezstd decoders, so a response advertising content-encoding: gzip, gzip, gzip inflates through multiple layers without bound. Both steps are enabled by default, no caller opt-in is required, and the attacker controls the content-type and content-encoding headers on their own server (or on any host reached via Req's automatic redirect following). A sub-megabyte response can expand to multiple gigabytes on the victim, crashing the BEAM process. This issue affects req: from 0.1.0 before 0.6.1.

