Vulnerability DatabaseCVE-2026-116590

CVE-2026-116590: 
Java vulnerability analysis and mitigation

Overview

CVE-2026-116590 is a JVM crash vulnerability in snappy-java (a Java port of Google's Snappy compression library) caused by unchecked array ranges passed to native memcpy operations. The flaw exists in Snappy.arrayCopy(), SnappyOutputStream.rawWrite(), and SnappyInputStream.rawRead(), where caller-supplied negative or oversized byteLength and offset values are forwarded to native code without validation, enabling out-of-bounds memory access. All versions prior to 1.1.10.9 of org.xerial.snappy:snappy-java are affected. The vulnerability was disclosed on October 26–27, 2026, with a fix released in version 1.1.10.9. It carries a CVSS v3.1 base score of 5.9 (Medium) (GitHub Advisory, Feedly).

Technical details

The root cause is improper validation of array indices (CWE-129) and out-of-bounds write (CWE-787). The Snappy.arrayCopy(Object src, int offset, int byteLength, Object dest, int destOffset) method passed caller-controlled offset and byteLength parameters directly to a native memcpy call without first verifying that the ranges fall within the bounds of the source and destination arrays. This allowed negative or oversized values to trigger reads or writes outside array boundaries, crashing the JVM. Additionally, typed-array byte-size calculations in stream read/write methods could overflow int, producing incorrect in-range offsets that bypass logical checks. The fix in PR #741 adds explicit range validation in Snappy.arrayCopy, introduces a checkElementRange helper for typed-array methods, and rejects byte-size calculations that overflow int (GitHub Advisory, GitHub PR #741, Commit 2d7ca71).

Impact

Successful exploitation causes a JVM crash, resulting in a denial of service for any application relying on snappy-java for compression or decompression. There is no confidentiality or integrity impact — the vulnerability is limited to availability (CVSS A:H, C:N, I:N). Applications that accept externally supplied data and pass it through snappy-java stream or array operations are at risk, including data pipelines, messaging systems, and distributed storage frameworks that use snappy-java as a dependency (GitHub Advisory, Feedly).

Exploitability

No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at this time. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.407%, reflecting a low probability of exploitation in the near term. Exploitation requires high attack complexity (AC:H) and no privileges or user interaction, meaning an unauthenticated network attacker must be able to supply malicious input to a snappy-java compression/decompression operation (GitHub Advisory, Feedly).

Exploitation steps

  1. Identify target: Locate a network-accessible application that uses snappy-java versions prior to 1.1.10.9 and exposes an endpoint that accepts user-controlled data passed to snappy-java compression or decompression operations (e.g., a data ingestion API, messaging broker, or file upload service).
  2. Craft malicious input: Prepare input that, when processed by the application, results in a call to SnappyOutputStream.rawWrite(), SnappyInputStream.rawRead(), or Snappy.arrayCopy() with a negative or oversized byteLength or offset value — for example, by supplying a typed array with a range whose byte size overflows int.
  3. Submit the payload: Send the crafted input to the target endpoint via the application's normal interface (e.g., HTTP request, message queue submission).
  4. Trigger JVM crash: The unvalidated range is forwarded to the native memcpy, causing an out-of-bounds memory access that crashes the JVM, resulting in a denial of service for the application (GitHub Advisory, GitHub PR #741).

Indicators of compromise

  • Logs: Unexpected JVM crash logs (hs_err_pid*.log) referencing native memory access violations or segmentation faults originating from snappy-java native library calls (libsnappyjava).
  • Process: Sudden, unexplained JVM process termination in applications using snappy-java, particularly following receipt of external compressed or uncompressed data.
  • Application Logs: IndexOutOfBoundsException, IllegalArgumentException, or SnappyError (with code TOO_LARGE_INPUT) stack traces in application logs referencing Snappy.arrayCopy, SnappyOutputStream.rawWrite, or SnappyInputStream.rawRead — these indicate exploitation attempts against patched versions or boundary probing.
  • Network: Repeated requests to data ingestion or compression endpoints with anomalously large or malformed payload sizes, particularly if followed by application restarts.

Mitigation and workarounds

Upgrade org.xerial.snappy:snappy-java to version 1.1.10.9 or later, which adds bounds validation in Snappy.arrayCopy and all typed-array stream read/write methods before invoking native code (GitHub Release v1.1.10.9, GitHub Advisory). As a temporary workaround if upgrading is not immediately possible, validate all offset and length parameters against array bounds before passing them to snappy-java APIs. Applications and downstream dependencies (e.g., Hadoop, Kafka, Spark) that bundle snappy-java should also be reviewed and updated to ensure they pull in the patched version.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Ubuntu

Unknown

bionic (esm-apps)

snappy-java

Unknown

devel

snappy-java

Unknown

focal (esm-apps)

snappy-java

Unknown

jammy

snappy-java

Unknown

jammy (esm-apps)

snappy-java

Unknown

noble

snappy-java

Unknown

noble (esm-apps)

snappy-java

Unknown

resolute

snappy-java

Unknown

RHEL / CentOS

Unknown

Source: This report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-44179CRITICAL9.9
  • Java logoJava
  • com.xwiki.pro:xwiki-pro-macros
NoYesOct 28, 2026
CVE-2026-111765HIGH7.5
  • Java logoJava
  • org.a2aproject.sdk:a2a-java-sdk-http-client-android
NoYesOct 20, 2026
CVE-2026-116590MEDIUM5.9
  • Java logoJava
  • knative-kafka-broker-1.23
NoYesOct 26, 2026
CVE-2026-111763MEDIUM5.7
  • Java logoJava
  • org.a2aproject.sdk:a2a-java-sdk-parent
NoYesOct 20, 2026
CVE-2026-113730MEDIUM5.6
  • Java logoJava
  • camunda-8.9
NoYesOct 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management