Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted ~5-byte LZ4 blob
-
ExploitLength header declares ~2 GiB output
-
ExecutionLibrary allocates untrusted size
-
ImpactJVM heap exhausted (OutOfMemoryError)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
|
| Exploitation Conditions | The application must pass attacker-controlled compressed data to LZ4DecompressorWithLength's allocating convenience overloads - specifically decompress(byte[]) / decompress(byte[], int) backed by an LZ4FastDecompressor or LZ4SafeDecompressor - which allocate an output buffer sized from the untrusted four-byte header before validating the compressed payload. Exploitation is LIMITED by several factors: overloads that write into a caller-provided destination buffer are NOT affected because the caller controls the destination size; the allocation is capped near 2 GiB by a signed 32-bit length, bounding impact to transient heap pressure/OutOfMemoryError rather than unbounded allocation; and the affected version must be prior to 1.11.2. No special product configuration flag is required beyond the use of the vulnerable allocating API on untrusted input. |
| Impact | This is a moderate, availability-only issue that is correctly rated low-to-medium rather than a genuine high-priority emergency. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, base 5.3) indicates a network-reachable, low-complexity, unauthenticated flaw with no confidentiality or integrity impact and only LOW availability impact - consistent with CWE-789 (memory allocation with excessive size value) and the description's uncontrolled ~2 GiB heap allocation. The impact is bounded: a signed 32-bit length caps the allocation at roughly 2 GiB per request, so this is a resource-exhaustion/denial-of-service primitive, not code execution or data leakage. No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no signal of active or widespread exploitation; by the precision rules this is 'no public exploit identified at time of analysis.' Signals are internally consistent except for the metadata 'Information Disclosure' tag, which directly contradicts the CVSS vector (C:N, I:N) and the description - this is memory exhaustion affecting availability, not information disclosure. Real-world risk is gated by whether an application actually feeds attacker-controlled compressed data into the vulnerable allocating overloads; where it does not, effective risk is negligible. |
| Exploit ScenarioDerived | An application uses LZ4DecompressorWithLength's convenience decompress(byte[]) overload (backed by LZ4FastDecompressor or LZ4SafeDecompressor) to decompress data received from an untrusted source such as a network client or uploaded file. An attacker submits a tiny (~5-byte) input whose four-byte length header declares a size near 2 GiB; the library trusts the header before validating the compressed payload and allocates the full buffer, exhausting the JVM heap and triggering OutOfMemoryError. No public exploit code was identified in the provided data, though the technique is trivial given the described behavior. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Denial of service in yawkat lz4-java before 1.11.2: an attacker who can feed compressed bytes into LZ4DecompressorWithLength's buffer-allocating decompress methods can exhaust JVM heap. A five-byte payload whose four-byte length header declares a huge output causes the library to allocate up to roughly 2 GiB before it validates the compressed data, resulting in OutOfMemoryError and transient heap pressure. The flaw is remotely triggerable and unauthenticated (CVSS:3.1/AV:N/AC:L/PR:N/UI:N) but availability-only with low impact (C:N/I:N/A:L), yielding a 5.3 score; no public exploit code was identified at time of analysis, and the vendor-released fix is version 1.11.2.
RemediationAI
Upgrade to lz4-java 1.11.2 or later (vendor-released patch), which adds a 64 MiB default cap on decompressed length for allocating methods, rejects headers exceeding compressedLength * 255, and introduces constructors accepting an explicit maxDecompressedLength; the fix commit is 6492ce5aca6bd03ff9e08ee18a2beb94c431371a and the release is tagged v1.11.2, with details in advisory GHSA-6cx8-rjf8-pr8g. If an immediate upgrade is not possible, switch to the non-vulnerable overloads that write into a caller-provided destination buffer, since those size the output from the caller's buffer and are explicitly reported as unaffected - the trade-off is that the caller must now own destination sizing and handle LZ4Exception-style length mismatches. Alternatively, pre-validate the four-byte header yourself with getDecompressedLength before calling the allocating overloads and reject any declared length above your application's expected maximum, or wrap decompression in a bounded executor that fails fast on OutOfMemoryError; both approaches are fragile because the header is still attacker-controlled, and neither should be treated as equivalent to the upstream patch. Adding -XX:+ExitOnOutOfMemoryError or heap-size limits reduces blast radius but converts the memory pressure into process termination, so it is a containment measure, not a fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is net.jpountz.lz4.LZ4DecompressorWithLength, a convenience wrapper that pairs with LZ4CompressorWithLength, whose stream format prepends a four-byte little-endian decompressed-length header to the LZ4 block. The weakness is CWE-789 (Memory Allocation with Excessive Value): getDecompressedLength() reads and returns that header without cross-checking it against the actual compressed input, and the convenience overloads decompress(byte[]) / decompress(byte[], int) backed by LZ4FastDecompressor or LZ4SafeDecompressor use it to size the output buffer before decompression or validation occurs. Because the length is a signed 32-bit int, an adversary-controlled header can request close to 2 GiB with only five bytes of input, so the practical ceiling is bounded heap pressure and OutOfMemoryError rather than unbounded allocation. Overloads that write into a caller-supplied destination buffer are unaffected because the caller controls the destination size. The upstream fix (commit 6492ce5aca6bd03ff9e08ee18a2beb94c431371a) introduces a configurable maxDecompressedLength defaulting to 64 MiB for allocating methods, a MAX_COMPRESSION_RATIO of 255 that rejects declared lengths exceeding compressedLength * 255, a checkDestinationLength guard for caller buffers, and additional SafeUtils.checkRange bounds checks, throwing LZ4Exception on invalid lengths. The advisory is tagged Java and Information Disclosure, but the assessed and described impact is strictly availability loss; the disclosed root cause is resource allocation, not data exposure.
Know when Java gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Attacker-supplied compressed data over the network triggers the flaw with no auth or interaction (AV:N/AC:L/PR:N/UI:N); only availability is affected and the ~2 GiB cap bounds it to A:L.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
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.
Blast Radius
ecosystem impact- 1,245 maven packages depend on at.yawk.lz4:lz4-java (78 direct, 1,171 indirect)
- 193 maven packages depend on org.lz4:lz4-java (62 direct, 133 indirect)
Ecosystem-wide dependent count for version 1.11.2 and other introduced versions.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-93872
GHSA-6cx8-rjf8-pr8g
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB