Description
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in silviucpp ezstd allows an attacker who supplies a zstd frame to ezstd:decompress_using_ddict/2 to exhaust memory and terminate the Erlang VM via a small frame that declares a very large content size.
zstd_nif_decompress_using_ddict in c_src/ezstd_nif.cc reads the frame's declared content size with ZSTD_getFrameContentSize and passes it directly to enif_make_new_binary, without the 1 GiB MAX_BUFFER_SIZE check that ezstd:decompress/1 applies before allocating. A valid 65,550-byte frame of RLE blocks declaring 2 GiB is rejected by ezstd:decompress/1 but is fully allocated and decompressed by the dictionary path. The allocation happens inside a NIF, so when it exceeds the memory available to the VM the operating system kills the whole node rather than the calling process.
This issue affects ezstd: from 1.0.5 before 1.2.5.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| silviucpp | ezstd | 1.0.5 – < 1.2.5 | 1.2.5 |
| silviucpp | ezstd | — | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Hex | ezstd | >= 1.0.5, < 1.2.5 | 1.2.5 | EEF-CVE-2026-119434 |
References
- ezstd v1.2.5 release notes release-notes related
- EEF CNA record for CVE-2026-119434 related third-party-advisory
- OSV record EEF-CVE-2026-119434 related
- Introducing commit 6730128 in silviucpp/ezstd related
- Fix commit e34f4a4 in silviucpp/ezstd patch