Skip to main content

LZ4 Java CVE-2026-106453

| EUVDEUVD-2026-93872 MEDIUM
Memory Allocation with Excessive Size Value (CWE-789)
2026-10-06 security-advisories@github.com GHSA-6cx8-rjf8-pr8g
5.3
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit crafted ~5-byte LZ4 blob
  2. Exploit
    Length header declares ~2 GiB output
  3. Execution
    Library allocates untrusted size
  4. Impact
    JVM 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

lz4-java < 1.11.2

Affected Packages

maven at.yawk.lz4:lz4-java fix: 1.11.2
maven org.lz4:lz4-java no fix
euvd lz4_java fix: 1.11.2

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

Vendor (github) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Red Hat 5.3 MEDIUM

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

Lifecycle Timeline

1
Patch available
Oct 06, 2026 - 21:05 EUVD

DescriptionCVE.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
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 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

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Medium
maintained fork of popular lz4-java library; fork's production footprint unclear
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

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

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy