medium5.3
CVE-2026-106452
yawkat LZ4 Java: LZ4BlockInputStream allocates an unvalidated compressed length from the stream header
Impact
yawkat LZ4 Java provides LZ4 compression for Java. Prior to 1.11.2, net.jpountz.lz4.LZ4BlockInputStream refill() validates that the compressedLen field in a legacy LZ4Block header is nonnegative but allocates a compressed-input buffer of that attacker-controlled size before reading payload data, allowing a header-only stream to request a near-2 GiB allocation and exhaust the JVM heap. Canonical writers emit raw blocks when compression is not smaller than the original block, but vulnerable readers accept non-canonical oversized compressed blocks. 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-4v53-57pg-c464
- https://github.com/yawkat/lz4-java/security/advisories/GHSA-4v53-57pg-c464
- https://nvd.nist.gov/vuln/detail/CVE-2026-106452
- https://github.com/yawkat/lz4-java/commit/bb83dd16163cdb71231af06b0a5651881148a634
- https://github.com/yawkat/lz4-java/releases/tag/v1.11.2