Decompression bomb via unbounded zlib:inflate in jose_jwe_zip:uncompress/2
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 1.11.13
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The jose library for Erlang and Elixir (erlang-jose, including its JOSE.JWE.block_decrypt/2 interface) is affected when it decrypts JWE tokens that use compressed payloads. An attacker can send a small crafted token that expands into a very large amount of data during decryption, exhausting the server's memory and crashing the application, which denies service to all users.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in potatosalad jose (erlang-jose) allows a remote attacker to exhaust a node's memory with a small crafted JWE token. The jose_jwe_zip:uncompress/2 function in src/jwe/jose_jwe_zip.erl decompresses the DEFLATE-compressed plaintext of a JWE that carries the optional zip: DEF header by calling zlib:inflate/2 on the entire attacker-controlled stream, with no bound on the output size or the inflation ratio. Raw DEFLATE reaches ratios around 1000:1 on highly repetitive input, so a few-kilobyte token inflates to hundreds of megabytes or gigabytes in a single call. Decompression runs automatically during decryption through jose_jwe:block_decrypt/2 (JOSE.JWE.block_decrypt/2 in Elixir), before the recipient can inspect or reject the payload. With the common asymmetric key-management algorithms (RSA-OAEP, ECDH-ES) an attacker needs only the recipient's public key to craft such a token, so no authentication or secret material is required. A single small token can exhaust the node's memory and crash the BEAM, denying service to all users. This issue affects jose: from 1.0.0 before 1.11.13.
Timeline
- CVE published
- First seen by cve.now
Affected versions
- jose
From 1.0.0 · fixed in 1.11.13
- potatosalad/erlang-jose
From a7746ecd4950f85a393136e449a91dac62b5c429 · fixed in 857eb8e7f2d33e2c9ca2189e77226561cacaf2ad
- joseHex
From 1.0.0 · fixed in 1.11.13