Skip to content
Fencer Vulns
medium 5.9

CVE-2023-34453 json

snappy-java's Integer Overflow vulnerability in shuffle leads to DoS

published 2023-06-15 3 y ago modified 2026-09-10 1 mo ago also GHSA-pqr6-cmr2-h8hf , EUVD-2023-1858

cvss
5.9
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
1.7%
EPSS 1.7% chance of exploitation in 30 days, percentile 77%
public exploits
0
none known

Summary

snappy-java is a fast compressor/decompressor for Java. Due to unchecked multiplications, an integer overflow may occur in versions prior to 1.1.10.1, causing a fatal error.

The function `shuffle(int[] input)` in the file `BitShuffle.java` receives an array of integers and applies a bit shuffle on it. It does so by multiplying the length by 4 and passing it to the natively compiled shuffle function. Since the length is not tested, the multiplication by four can cause an integer overflow and become a smaller value than the true size, or even zero or negative. In the case of a negative value, a `java.lang.NegativeArraySizeException` exception will raise, which can crash the program. In a case of a value that is zero or too small, the code that afterwards references the shuffled array will assume a bigger size of the array, which might cause exceptions such as `java.lang.ArrayIndexOutOfBoundsException`.

The same issue exists also when using the `shuffle` functions that receive a double, float, long and short, each using a different multiplier that may cause the same issue.

Version 1.1.10.1 contains a patch for this vulnerability.

Patch / fix

  • maven org.xerial.snappy:snappy-java 1.1.10.1
  • xerial snappy-java 1.1.10.1

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2023-34453 updated cvss 5.9

snappy-java: Integer overflow in shuffle leads to DoS

  • Red Hat OpenShift Serverless snappy-java Red Hat JBoss Fuse 6 snappy-java-all snappy-java-all, snappy-java-all-repolib snappy-java-all-repolib
    affected: no fix planned “Will not fix”
  • Red Hat JBoss Fuse Service Works 6 snappy-java-all snappy-java-all, snappy-java-all-repolib snappy-java-all-repolib Red Hat OpenShift Container Platform 3.11 openshift3/ose-metrics-cassandra
    affected: no fix planned “Out of support scope”
  • Red Hat Software Collections snappy-java
    affected: no fix planned “Will not fix”
  • Red Hat AMQ Streams 2.5.0
    fixed: vendor fix RHSA-2023:5165
  • Red Hat build of Quarkus 2.13.9
    fixed: vendor fix RHSA-2023:7700
  • Red Hat Logging Subsystem for Red Hat OpenShift openshift-logging/elasticsearch6-rhel8 Red Hat Enterprise Linux 8 log4j, log4j-jcl, log4j-web, log4j-slf4j Red Hat Enterprise Linux 9 log4j, log4j-jcl, log4j-slf4j Red Hat Satellite 6 snappy-java Red Hat streams for Apache Kafka snappy-java, snappy-java-repolib snappy-java-repolib
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
Proof of concept is public
Automatable
no
Technical impact
partial
Assessed
22 mo ago

Exploit prediction

1.71% chance of exploitation in the next 30 days, higher than 77% of all scored CVEs (FIRST EPSS, 2026-11-08).

Exploits and checks

  • github.com https://github.com/xerial/snappy-java/security/advisories/GHSA-pqr6-cmr2-h8hf referenced PoC, tagged "exploit" by a source, unverified

CVSS scores

assigned by version score vector
CNA 3.1 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
NVD 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
GitHub 3.1 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

Affected packages

ecosystem package affected fixed in
maven org.xerial.snappy:snappy-java
<1.1.10.1
1.1.10.1

Affected products

  • xerial snappy-java

Classification

Weakness
  • CWE-190 Integer Overflow or Wraparound

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.