Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach service that compresses untrusted data
-
DeliverySupply crafted incompressible payload
-
ExploitTrigger OOB write in Snappy.compress ByteBuffer path
-
ExecutionCorrupt off-heap memory
-
ImpactCrash JVM (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the target application to call snappy-java's Snappy.compress(ByteBuffer, ByteBuffer) overload with a destination ByteBuffer whose remaining capacity is smaller than the compressed output, and to feed it attacker-influenceable incompressible data (random/encrypted bytes that Snappy cannot shrink). Applications that use the byte[]-based compress API, size destination buffers with Snappy.maxCompressedLength(), or never compress untrusted input are not exposed. Impact is limited to availability (JVM crash / process termination); there is no confidentiality or integrity impact and no code execution, so the practical limiter is whether the vulnerable ByteBuffer overload sits on a path reachable with untrusted, low-compressibility input. |
| Impact | This is an availability-only defect, not a code-execution flaw despite the CWE-787 (out-of-bounds write) classification. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H) is explicit that confidentiality and integrity are unaffected (VC:N/VI:N) and only availability is high (VA:H) - the described impact is off-heap memory corruption leading to JVM termination, i.e. a crash/DoS, not attacker-controlled code execution. My independent 3.1 mapping is 7.5 (C:N/I:N/A:H), lower than the 8.7 shown, because 4.0's scoring weights network availability impact more aggressively than 3.1 does. No EPSS score, KEV listing, or POC is present in the supplied intelligence, so there is no public-exploitation signal - real-world urgency rests on how widely the specific vulnerable API path is reachable rather than on observed attacks. A key caveat: exploitation is not universal to every snappy-java consumer - it requires the application to invoke the two-ByteBuffer Snappy.compress(ByteBuffer, ByteBuffer) overload with an undersized destination buffer and attacker-influenceable (incompressible) input, so the AV:N/PR:N/AC:L vector reflects the theoretical library API surface, not a guaranteed remote-crash of any deployment. Treat as a moderate-priority availability/robustness fix, especially for services that compress untrusted data via the ByteBuffer API. |
| Exploit ScenarioDerived | A service that compresses client-supplied data using snappy-java's Snappy.compress(ByteBuffer, ByteBuffer) overload receives incompressible (e.g. already-random/encrypted) input that, once 'compressed', exceeds the destination ByteBuffer's remaining capacity. The library writes past the destination buffer end, corrupting off-heap memory and crashing the JVM, taking down the service. No public exploit code is identified in the provided data; the VulnCheck advisory and GitHub issue #732 describe the mechanism. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Memory corruption in snappy-java through 1.1.10.8 lets an attacker terminate the JVM hosting the library: the Snappy.compress(ByteBuffer, ByteBuffer) overload writes past the end of the destination buffer when incompressible input exceeds its remaining capacity, corrupting off-heap memory. Exposure is limited to Java applications that call that specific ByteBuffer overload with attacker-influenceable, low-compressibility data and a destination buffer that was not sized using Snappy.maxCompressedLength(); code using the byte[]-based compress API or compressing only trusted data is not exposed. The flaw is reachable by unauthenticated remote attackers (CVSS 4.0 vector reports PR:N, and the independent assessment agrees with AV:N/PR:N/UI:N), but the impact is availability-only - no confidentiality or integrity loss and no code execution - and no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
No vendor-released patch version is identified in the available data - the supplied references point to the upstream repository, the vulnerable source line, and issue #732 rather than to a fix commit or tagged release - so the first action is to track https://github.com/xerial/snappy-java/issues/732 and https://github.com/xerial/snappy-java for a patched release and upgrade org.xerial.snappy:snappy-java as soon as one is published. Until then, prioritize code-level mitigation over generic hardening: replace calls to Snappy.compress(ByteBuffer, ByteBuffer) with the byte[]-based overload, which is not affected by this overflow, at the cost of an extra copy and allocation per compression; or, if the ByteBuffer overload must be retained, size the destination using Snappy.maxCompressedLength(src.remaining()) and explicitly reject any call where dst.remaining() is below that bound - this adds a cheap capacity check but requires every call site to be audited, since a single overlooked path preserves the flaw. Where untrusted data flow cannot be fully controlled, gate the compression path (for example, refuse to compress payloads that fail a compressibility or size pre-check, or impose a maximum input size on the endpoint that feeds it), accepting that legitimate high-entropy traffic may be rejected. As a blast-radius control, run the compression path in a separate, resource-limited worker JVM or process so an overflow terminates only the worker rather than the primary service, and alert on JVM crash/exit signals (SIGSEGV, hs_err_pid logs) in that tier as a detection signal. Note that isolating the vulnerable library in an unprivileged container does not prevent the crash itself and carries operational overhead, and that dependency upgrades should be verified against an SBOM because snappy-java is frequently pulled in transitively rather than declared directly.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
snappy-java is xerial's JNI-backed Java implementation of Google's Snappy compression algorithm, widely used as a transitive dependency across the Java data ecosystem (Kafka, Hadoop, Spark and similar stacks). The vulnerable code path is the ByteBuffer overload at src/main/java/org/xerial/snappy/Snappy.java (line 137 in the v1.1.10.8 tree), which compresses from a source ByteBuffer into a caller-supplied destination ByteBuffer. Snappy's output is not bounded by the input size - incompressible payloads (random or encrypted bytes) can expand, and the library's own Snappy.maxCompressedLength() helper exists precisely to compute a safe upper bound. When the destination's remaining() is smaller than the compressed output, the native write runs past the buffer end, matching the CWE-787 (out-of-bounds write) classification. Because the overflow happens in off-heap/native memory rather than the managed Java heap, the JVM's array bounds checks do not intercede; the result is native memory corruption and typically a hard crash or SIGSEGV-driven JVM termination rather than a catchable Java exception. Despite the out-of-bounds-write CWE, the assessed CVSS 3.1 vector (C:N/I:N/A:H) and the CVSS 4.0 vector (VC:N/VI:N/VA:H) both score this as an availability defect only, with no demonstrated control over written values and therefore no code-execution path. The reported references are the upstream repository, the exact vulnerable source line, upstream issue #732, and a VulnCheck advisory; no CPE strings were supplied in the source data, so affected-version scoping rests on the stated 'through 1.1.10.8' range rather than an authoritative CPE match.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable library path with no auth or UI when untrusted data is compressed; impact is JVM crash only, so C:N/I:N/A:H (base 7.5), lower than the 4.0-derived 8.7.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
snappy-java through 1.1.10.8 contains a buffer overflow vulnerability in Snappy.compress(ByteBuffer, ByteBuffer) that writes past the end of the destination buffer. Attackers can supply incompressible data that exceeds the destination buffer's remaining capacity, corrupting off-heap memory and causing JVM termination.
Executive ViewAI
Java applications using the snappy-java compression library through 1.1.10.8 can be remotely crashed by an unauthenticated attacker when they call the Snappy.compress(ByteBuffer, ByteBuffer) overload with attacker-influenced, poorly compressible data and an undersized destination buffer. The impact is availability-only, meaning a successful attack can terminate the JVM but does not expose data, alter data, or allow code execution, so the primary business risk is service disruption for affected Java-based services. Leadership should care because this can cause unplanned downtime, and no vendor-released patch identified at time of analysis, requiring dependency and code-level mitigations until a fix is issued.
No vendor-released patch identified at time of analysis; interim mitigations include avoiding the Snappy.compress(ByteBuffer, ByteBuffer) overload, using the byte[]-based compress API, allocating destination buffers with Snappy.maxCompressedLength(), rejecting or limiting incompressible attacker-controlled input, restricting network access to affected Java services, and monitoring for JVM crashes.
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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Related Vulnerabilities in snappy-java Buffer Overflow Flaws
View all 2Oracle 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-82604
GHSA-pm27-vjq7-f5fv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB