Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted LZ4 frame stream
-
DeliveryPack many minimal empty concatenated frames
-
ExploitTrigger repeated 8 MiB buffer allocations in readHeader
-
ExecutionExhaust heap and GC/CPU
-
ImpactDenial of service of JVM/application
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The application must decode attacker-controlled LZ4 data using net.jpountz.lz4.LZ4FrameInputStream in its DEFAULT concatenated-frame mode; the attacker crafts a stream of many minimal empty maximum-block-size frames so that readHeader() repeatedly allocates two 4 MiB block buffers. Key limiting factor: readSingleFrame mode is explicitly NOT affected, so applications that construct the stream in single-frame mode are not vulnerable. Note that decompressed-size/output limits do NOT mitigate this because the stream yields no decompressed output while still consuming CPU and GC time. No authentication, user interaction, or non-default configuration is required for the default-mode case; exploitation only requires that untrusted LZ4 frame input reach this decoder. |
| Impact | This is a genuine but moderate-severity denial-of-service issue, not a critical priority. The vendor-assigned CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, score 5.3) is internally consistent with the description and with CWE-770 (allocation of resources without limits): a remote, unauthenticated attacker with low complexity can cause availability-only impact via roughly 8 MiB of heap allocation and GC pressure per 11 input bytes, with no confidentiality or integrity effect. No EPSS score, KEV listing, POC, or SSVC decision data was provided in the input, so exploitation-probability and active-exploitation signals cannot be evaluated - per precedent rules this is treated as 'no public exploit identified at time of analysis.' The amplification factor is high and the fix commit is public (which lowers the barrier to building a trigger), but real-world risk is gated by whether a given application actually decodes untrusted LZ4 frame data through LZ4FrameInputStream in the default concatenated-frame mode. One nuance to verify: the description notes that decompressed-size limits do NOT mitigate this because the stream produces no decompressed output while still consuming CPU/GC, so operators relying on output-size caps as a defense should not assume they are protected. |
| Exploit ScenarioDerived | An attacker supplies a malicious LZ4 stream - for example as an uploaded file, API payload, or message consumed by a backend service - to an application that decodes it with LZ4FrameInputStream in the default concatenated-frame mode. The stream contains many minimal empty frames, each forcing allocation of two 4 MiB block buffers, so a tiny input (about 11 bytes per frame) drives roughly 8 MiB of allocation and sustained GC activity, degrading or exhausting the JVM. No public exploit code was identified at time of analysis, though the public fix commit reveals the triggering frame structure. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Denial of service in LZ4 Java (lz4-java) prior to 1.11.4 allows unauthenticated remote attackers to exhaust memory and CPU by supplying a crafted LZ4 frame stream to net.jpountz.lz4.LZ4FrameInputStream in its default concatenated-frame mode; each minimal empty maximum-block-size frame forces readHeader() to allocate two 4 MiB block buffers (roughly 8 MiB per 11 input bytes) with no decompressed output, so decompressed-size limits do not mitigate the issue. The vulnerability is moderate severity (CVSS 5.3, A:L) and is fixed in 1.11.4; readSingleFrame mode is not affected, and no public exploit or KEV entry has been identified at time of analysis.
RemediationAI
Upgrade to lz4-java 1.11.4 (vendor-released patch: 1.11.4), which lazily allocates and reuses block buffers across frames, reuses skip and streaming hash buffers, and validates block sizes. If immediate upgrade is not possible, switch untrusted decoding paths from the default concatenated-frame mode to readSingleFrame mode where the API supports it, understanding that this will reject legitimate concatenated frames and may break interoperability with multi-frame LZ4 streams. Restrict or cap the number and size of attacker-supplied LZ4 frames before decoding, and monitor heap and GC pressure; note that decompressed-size limits alone do not mitigate this issue because the crafted stream produces no decompressed output. See the GitHub Security Advisory GHSA-gm45-99xc-r7wv and release notes at https://github.com/yawkat/lz4-java/releases/tag/v1.11.4 for details.
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.LZ4FrameInputStream in yawkat/lz4-java, a Java implementation of the LZ4 compression frame format. In the default concatenated-frame mode, the stream reads successive LZ4 frames, and readHeader() previously allocated two new 4 MiB byte buffers for every frame header that declared the maximum block size. Because an empty LZ4 frame with a maximum block size can be encoded in roughly 11 bytes, an attacker-controlled stream can trigger about 8 MiB of heap allocation per frame while producing no decompressed output, consuming CPU and garbage-collection time. This is CWE-770 (Allocation of Resources Without Limits or Throttling). The fix commit 2acc0ec1ead226145c62a817c18c8ed49233a283 makes the block buffers lazily allocated and reused across blocks and frames, reuses the skip buffer and streaming hash, and adds block-size validation. Applications that use readSingleFrame mode are explicitly not affected. No CPE strings were provided, but the affected artifact is clearly lz4-java prior to 1.11.4.
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
Remote unauthenticated input to the default decode mode (AV:N/AC:L/PR:N/UI:N); only resource-exhaustion availability impact, partial not total, so A:L and C/I:N.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
yawkat LZ4 Java provides LZ4 compression for Java. Prior to 1.11.4, net.jpountz.lz4.LZ4FrameInputStream readHeader() allocates two new 4 MiB block buffers whenever a maximum-block-size frame header is read, and the default concatenated-frame mode allows attacker-controlled streams containing many minimal empty frames to trigger roughly 8 MiB of allocation for every 11 input bytes. The stream produces no decompressed output while consuming CPU and garbage-collection time, so decompressed-size limits do not mitigate the issue; readSingleFrame mode is not affected. This issue is fixed in version 1.11.4.
Blast Radius
ecosystem impact- 163 maven packages depend on at.yawk.lz4:lz4-java (18 direct, 145 indirect)
- 193 maven packages depend on org.lz4:lz4-java (62 direct, 133 indirect)
Ecosystem-wide dependent count for version 1.11.4 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
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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-93865
GHSA-gm45-99xc-r7wv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB