CVE-2026-106453
yawkat LZ4 Java: LZ4DecompressorWithLength allocates the unvalidated size from the 4-byte length header, so a 5-byte input triggers a 1 GiB allocation and OutOfMemoryError
Impact
yawkat LZ4 Java provides LZ4 compression for Java. Prior to 1.11.2, LZ4DecompressorWithLength uses getDecompressedLength to trust the four-byte decompressed-length header before validating the compressed input, allowing a five-byte attacker-supplied input whose header declares a large output size to request up to approximately 2 GiB and exhaust the JVM heap. Convenience overloads backed by LZ4FastDecompressor or LZ4SafeDecompressor allocate the untrusted size, while overloads that write to a caller-provided destination buffer are not affected because the caller controls the destination size. This issue is fixed in version 1.11.2.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| maven | at.yawk.lz4:lz4-java | <= 1.11.1 | 1.11.2 |
| maven | org.lz4:lz4-java | <= 1.8.1 | none recorded |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/advisories/GHSA-6cx8-rjf8-pr8g
- https://github.com/yawkat/lz4-java/security/advisories/GHSA-6cx8-rjf8-pr8g
- https://nvd.nist.gov/vuln/detail/CVE-2026-106453
- https://github.com/yawkat/lz4-java/commit/6492ce5aca6bd03ff9e08ee18a2beb94c431371a
- https://github.com/yawkat/lz4-java/releases/tag/v1.11.2