CVE-2026-49755
Decompression bomb DoS in Req via auto-decoded archive and compressed response bodies
Description
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.
INFO
Published Date :
June 8, 2026, 4:16 p.m.
Last Modified :
Aug. 18, 2026, 3:46 p.m.
Remotely Exploit :
Yes !
Source :
6b3ad84c-e1a6-4bf7-a703-f496b71e49db
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS | 134c704f-9b21-4f2e-91b3-4a467353bcc0 | |||||
| CVSS 3.1 | HIGH | [email protected] | ||||
| CVSS 4.0 | HIGH | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | ||||
| CVSS 4.0 | HIGH | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db |
Solution
- Update Req to 0.6.1 or later.
- Apply input validation for compressed data.
- Limit decompression memory usage.
- Disable automatic decompression if not needed.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-49755.
| URL | Resource |
|---|---|
| https://cna.erlef.org/cves/CVE-2026-49755.html | Third Party Advisory |
| https://github.com/wojtekmach/req/commit/84977e5b1a83f26e749d55ad06e3625464af4e8d | Patch |
| https://github.com/wojtekmach/req/security/advisories/GHSA-655f-mp8p-96gv | Vendor Advisory Exploit Patch |
| https://osv.dev/vulnerability/EEF-CVE-2026-49755 | Third Party Advisory Patch Mitigation |
| https://github.com/wojtekmach/req/security/advisories/GHSA-655f-mp8p-96gv | Vendor Advisory Exploit Patch |
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-49755 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-49755
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-49755 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-49755 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
Initial Analysis by [email protected]
Aug. 18, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H Added CPE Configuration OR *cpe:2.3:a:wojtekmach:req:*:*:*:*:*:*:*:* versions from (including) 0.1.0 up to (excluding) 0.6.1 Added Reference Type CISA-ADP: https://github.com/wojtekmach/req/security/advisories/GHSA-655f-mp8p-96gv Types: Exploit, Patch, Vendor Advisory Added Reference Type EEF: https://cna.erlef.org/cves/CVE-2026-49755.html Types: Third Party Advisory Added Reference Type EEF: https://github.com/wojtekmach/req/commit/84977e5b1a83f26e749d55ad06e3625464af4e8d Types: Patch Added Reference Type EEF: https://github.com/wojtekmach/req/security/advisories/GHSA-655f-mp8p-96gv Types: Exploit, Patch, Vendor Advisory Added Reference Type EEF: https://osv.dev/vulnerability/EEF-CVE-2026-49755 Types: Mitigation, Patch, Third Party Advisory -
CVE Translated by [email protected]
Jul. 23, 2026
Action Type Old Value New Value Added Translation Title: Req de wojtekmach, Description: La vulnerabilidad de manejo inadecuado de datos altamente comprimidos (amplificación de datos) en wojtekmach Req permite a los servidores HTTP controlados por el atacante agotar la memoria en un cliente Req mediante cuerpos de respuesta de bomba de descompresión. La pipeline de respuesta predeterminada de Req incluye Req.Steps.decode_body/1 y Req.Steps.decompress_body/1 en lib/req/steps.ex. decode_body/1 despacha según el content-type proporcionado por el servidor (o extensión de URL) y llama a :zip.extract(body, [:memory]) para application/zip, a :erl_tar.extract({:binary, body}, [:memory]) para application/x-tar, y a :erl_tar.extract({:binary, body}, [:memory, :compressed]) para application/gzip / .tgz. Cada uno devuelve el contenido completo del archivo descomprimido como una lista [{name, bytes}] en memoria, sin límite de tamaño por entrada o total. decompress_body/1 recorre el encabezado content-encoding y encadena decodificadores :zlib/:brotli/:ezstd, por lo que una respuesta que anuncia content-encoding: gzip, gzip, gzip se infla a través de múltiples capas sin límite. Ambos pasos están habilitados por defecto, no se requiere la participación del llamador, y el atacante controla los encabezados content-type y content-encoding en su propio servidor (o en cualquier host alcanzado a través del seguimiento automático de redirecciones de Req). Una respuesta de menos de un megabyte puede expandirse a múltiples gigabytes en la víctima, colapsando el proceso BEAM. Este problema afecta a req: desde 0.1.0 antes de 0.6.1. -
CVE Modified by 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Jun. 17, 2026
Action Type Old Value New Value Added Affected [{'cpes': ['cpe:2.3:a:wojtekmach:req:*:*:*:*:*:*:*:*'], 'repo': 'https://github.com/wojtekmach/req', 'vendor': 'wojtekmach', 'modules': ["'Elixir.Req.Steps'"], 'product': 'req', 'versions': [{'status': 'affected', 'version': '0.1.0', 'lessThan': '0.6.1', 'versionType': 'semver'}], 'packageURL': 'pkg:hex/req', 'packageName': 'req', 'programFiles': ['lib/req/steps.ex'], 'collectionURL': 'https://repo.hex.pm', 'defaultStatus': 'unaffected', 'programRoutines': [{'name': "'Elixir.Req.Steps':decode_body/1"}, {'name': "'Elixir.Req.Steps':decompress_body/1"}]}, {'cpes': ['cpe:2.3:a:wojtekmach:req:*:*:*:*:*:*:*:*'], 'repo': 'https://github.com/wojtekmach/req.git', 'vendor': 'wojtekmach', 'modules': ["'Elixir.Req.Steps'"], 'product': 'req', 'versions': [{'status': 'affected', 'version': 'e37753741cbdc725e6aba3d977b380163bfc0ecb', 'lessThan': '84977e5b1a83f26e749d55ad06e3625464af4e8d', 'versionType': 'git'}], 'packageURL': 'pkg:github/wojtekmach/req', 'packageName': 'wojtekmach/req', 'programFiles': ['lib/req/steps.ex'], 'collectionURL': 'https://github.com', 'defaultStatus': 'unaffected', 'programRoutines': [{'name': "'Elixir.Req.Steps':decode_body/1"}, {'name': "'Elixir.Req.Steps':decompress_body/1"}]}] -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Jun. 17, 2026
Action Type Old Value New Value Added SSVC {'id': 'CVE-2026-49755', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'poc'}, {'automatable': 'no'}, {'technicalImpact': 'partial'}], 'version': '2.0.3', 'timestamp': '2026-06-08T16:49:57.977214Z'} -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Jun. 08, 2026
Action Type Old Value New Value Added Reference https://github.com/wojtekmach/req/security/advisories/GHSA-655f-mp8p-96gv -
New CVE Received by 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Jun. 08, 2026
Action Type Old Value New Value Added Description 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. Added CVSS V4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X Added CWE CWE-409 Added Reference https://cna.erlef.org/cves/CVE-2026-49755.html Added Reference https://github.com/wojtekmach/req/commit/84977e5b1a83f26e749d55ad06e3625464af4e8d Added Reference https://github.com/wojtekmach/req/security/advisories/GHSA-655f-mp8p-96gv Added Reference https://osv.dev/vulnerability/EEF-CVE-2026-49755