Skip to main content

snappy-java EUVDEUVD-2026-82604

| CVE-2026-93452 HIGH
Out-of-bounds Write (CWE-787)
2026-09-18 disclosure@vulncheck.com GHSA-pm27-vjq7-f5fv
8.7
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Reach service that compresses untrusted data
  2. Delivery
    Supply crafted incompressible payload
  3. Exploit
    Trigger OOB write in Snappy.compress ByteBuffer path
  4. Execution
    Corrupt off-heap memory
  5. Impact
    Crash 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.5% exploitation probability (EPSS)

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

Alert me

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

snappy-java 0 ≤1.1.10.8

Affected Packages

euvd snappy_java no fix

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

Vendor (vulncheck) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

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.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.5%
Top 59% exploitable
Prevalence
High
snappy-java is a ubiquitous compression dependency across the JVM ecosystem (Kafka, Spark, Hadoop)
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

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 2

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

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