Skip to main content

Xerial snappy-java EUVDEUVD-2026-95807

| CVE-2026-108106 HIGH
Memory Allocation with Excessive Size Value (CWE-789)
2026-10-09 VulnCheck GHSA-94x4-5g3f-jjxp
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify endpoint decompressing untrusted Snappy input
  2. Delivery
    Craft few bytes declaring huge uncompressed length
  3. Exploit
    Submit to Snappy.uncompress/SnappyInputStream
  4. Execution
    Library allocates up to 2GB pre-validation
  5. Impact
    OutOfMemoryError crashes JVM (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
Exploitation Conditions

Exploitation requires that the target application passes attacker-controlled compressed bytes to one of the vulnerable entry points - Snappy.uncompress, Snappy.uncompressString, SnappyInputStream, or SnappyFramedInputStream - using snappy-java before 1.1.10.9; the crafted input declares an oversized uncompressed length in the compressed header, forcing allocations up to 2 GB before the data is validated. No authentication or user interaction is required (PR:N/UI:N). The key limiting factor is reachability: the flaw is only exploitable where untrusted/externally-supplied Snappy data is decompressed; applications that decompress only trusted internal data are not practically exposed, and the impact is bounded to availability (OutOfMemoryError / JVM denial of service) with no data disclosure or modification.

Impact

This is a denial-of-service-only flaw (CWE-789 unbounded memory allocation) in the widely-embedded snappy-java compression library. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) scores 8.7 HIGH and indicates remote, unauthenticated, low-complexity triggering with no user interaction, but the impact is confined to availability (VA:H; VC:N/VI:N) - there is no confidentiality or integrity exposure, so the raw High score reflects easy exploitation of a single-dimension (DoS) impact rather than a full system compromise. Exploitation status is 'no public exploit identified at time of analysis': the input contains no KEV listing and no POC/exploit-code signal, and no EPSS probability was supplied, so widespread automated exploitation cannot be asserted. The realistic risk is conditional: the CVSS AV:N assumes the vulnerable decompression methods are reachable with attacker-controlled bytes, which is true only where an application feeds untrusted compressed data to Snappy; for such internet-facing data pipelines this is a genuine patch priority, whereas deployments that only decompress trusted internal data face low practical risk. Missing data to note explicitly: no EPSS score and no KEV/POC flags were provided, so exploitation likelihood is inferred solely from the CVSS vector and description, not confirmed.

Exploit ScenarioDerived

An attacker submits a small, crafted Snappy-compressed payload to an application endpoint that decompresses untrusted input (e.g. a message/upload handler calling Snappy.uncompress or wrapping the stream in SnappyInputStream). The payload's header declares a very large uncompressed length, causing the library to allocate up to 2 GB before validating the data, triggering OutOfMemoryError and crashing or stalling the JVM. No public exploit code is identified in the provided data, but the attack requires only a few crafted bytes and no authentication.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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 09, 2026

Unbounded memory allocation in Xerial snappy-java before 1.1.10.9 lets unauthenticated remote attackers exhaust the JVM heap by declaring an oversized uncompressed length in a compressed stream header, triggering OutOfMemoryError and denial of service. Any application that passes externally supplied bytes to Snappy.uncompress, Snappy.uncompressString, SnappyInputStream or SnappyFramedInputStream - for example Kafka, Hadoop/Spark or other services using snappy-java transitively - is in scope, and a handful of crafted bytes can force allocations of up to 2 GB before decompression validates the data. Impact is limited to availability (CVSS:4.0 base 8.7; assessed CVSS:3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) with no data disclosure or modification, and no public exploit was identified at time of analysis; the practical constraint is reachability, since applications that only decompress trusted internal data are not meaningfully exposed.

RemediationAI

Vendor-released patch: upgrade Xerial snappy-java to version 1.1.10.9 or later (release https://github.com/xerial/snappy-java/releases/tag/v1.1.10.9, fix commit 943c6043a292568575e8347af4507d015e802c75), and see advisory GHSA-q233-g92q-qxp6 for details; since the library is typically a transitive dependency, run a dependency scan (e.g. Maven/Gradle dependency:tree or OWASP Dependency-Check) across all services and pin or force-restore the patched version, escalating to downstream framework maintainers where a bundled version is pinned. Where patching cannot be applied immediately, the most effective compensating control is to cap the size of attacker-reachable compressed payloads before they reach snappy-java - enforce strict maximum message/record/frame sizes at the transport or queue layer (for example consumer-side max.message.bytes or equivalent broker limits) and reject inputs whose declared uncompressed length exceeds a plausible ratio of their compressed length (the upstream fix uses 64/3), accepting that legitimate highly compressible payloads may be rejected and that this must be tuned to real traffic. A weaker but low-effort measure is to run untrusted decompression in a dedicated JVM or worker process with a modest -Xmx so an OutOfMemoryError kills only that unit of work rather than a shared service, at the cost of added process overhead and the risk that the OOM still disrupts co-located requests if the same heap is reused. Do not rely on catch(OutOfMemoryError) handlers as a mitigation, since heap exhaustion can destabilize the entire JVM. No vendor-released patch is missing here; the fix exists, so the priority is inventorying transitive copies and redeploying them.

Affected VersionsENISA

snappy-java 0 <1.1.10.9

Affected Packages

euvd snappy_java fix: 1.1.10.9

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 the Java/JNI binding to Google's Snappy block compression format, widely embedded as a transitive dependency in data-processing frameworks. The underlying flaw is CWE-789 (memory allocation with excessive size value): the decoder read the uncompressed-length field from the compressed stream header and used it to size a buffer before any sanity check against the actual compressed size, so a valid-looking header followed by a few bytes produced a multi-gigabyte allocation attempt (up to 2 GB) and an OutOfMemoryError. The upstream fix at commit 943c6043a292568575e8347af4507d015e802c75 adds a checkUncompressedLength() guard that rejects any declared uncompressed length exceeding 64/3 times the compressed length, on the reasoning that the densest possible Snappy element is a 3-byte copy expanding to 64 bytes, so no legitimate stream can expand faster. The same commit hardens the JNI boundary by introducing checkArrayRange(), checkOutputSpace() and byteLengthOf() helpers, plus requiredCompressedLength() to catch int overflow in maxCompressedLength() for inputs near 2 GB - these enforce bounds on the input/output ranges that native code accesses via raw pointers without its own bounds checks. Also affected in the same release line are the framing/streaming wrappers (SnappyInputStream, SnappyFramedInputStream) and the string helper Snappy.uncompressString, all of which share the header-driven allocation path.

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

Remote unauthenticated attacker supplies a few crafted bytes with no interaction (AV:N/AC:L/PR:N/UI:N); impact is availability-only JVM exhaustion with no confidentiality or integrity effect and no scope change.

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
Red Hat 7.5 HIGH

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

Xerial snappy-java before 1.1.10.9 contains an unbounded memory allocation vulnerability that allows attackers to exhaust JVM memory by declaring a large uncompressed length in compressed input. Attackers can supply a few crafted bytes to Snappy.uncompress, uncompressString, SnappyInputStream or SnappyFramedInputStream to force allocations up to 2 GB, causing OutOfMemoryError and denial of service.

Technical POC Analysis

CWE-789 (Memory Allocation with Excessive Size Value); the advisory also tags CWE-770.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Xerial snappy-java, a compression library widely used by Kafka, Hadoop/Spark, and other data services, has a high-severity denial-of-service flaw that can exhaust JVM heap and disrupt availability. The vulnerability is unauthenticated and remotely triggerable where externally supplied compressed bytes reach affected Snappy decompression APIs; no public exploit identified at time of analysis, but transitive dependencies mean many teams may be exposed without direct awareness. Leadership should care because successful exploitation could cause outages in critical data pipelines and streaming platforms, though no data disclosure or modification is involved.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
High
widely-embedded Java compression library used across big-data/enterprise JVM stacks
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.4%
Patch available Yes
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

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

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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