Every CVE Search/ Get API key

CVE-2023-43642

Missing upper bound check on chunk length in snappy-java

7.5 HighFix available

snappy-java is a Java port of the snappy, a fast C++ compresser/decompresser developed by Google. The SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur. All versions of snappy-java including the latest released version 1.1.10.3 are vulnerable to this issue. A fix has been introduced in commit 9f8c3cf74 which will be included in the 1.1.10.4 release. Users are advised to upgrade. Users unable to upgrade should only accept compressed data from trusted sources.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

1.21%Up 1.2 points since Sep 26, 2023
90%50%10%1%

What each source reports

CVE List Score used 7.5

Missing upper bound check on chunk length in snappy-java

snappy-java is a Java port of the snappy, a fast C++ compresser/decompresser developed by Google. The SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur. All versions of snappy-java including the latest released version 1.1.10.3 are vulnerable to this issue. A fix has been introduced in commit 9f8c3cf74 which will be included in the 1.1.10.4 release. Users are advised to upgrade. Users unable to upgrade should only accept compressed data from trusted sources.

Record
CVE-2023-43642
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-02
EUVDEUVD-2023-2424 7.5

snappy-java is a Java port of the snappy, a fast C++ compresser/decompresser developed by Google. The SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur. All versions of snappy-java including the latest released version 1.1.10.3 are vulnerable to this issue. A fix has been introduced in commit 9f8c3cf74 which will be included in the 1.1.10.4 release. Users are advised to upgrade. Users unable to upgrade should only accept compressed data from trusted sources.

Record
EUVD-2023-2424
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-03
GitHub AdvisoriesGHSA-55g7-9cwv-5qfv 7.5

snappy-java's missing upper bound check on chunk length can lead to Denial of Service (DoS) impact

Summary

snappy-java is a data compression library in Java. Its SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too-large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur.

Scope

All versions of snappy-java including the latest released version 1.1.10.3. A fix is applied in 1.1.10.4

Details

While performing mitigation efforts related to CVE-2023-34455 in Confluent products, our Application Security team closely analyzed the fix that was accepted and merged into snappy-java version 1.1.10.1 in this commit. The check on line 421 only attempts to check if chunkSize is not a negative value. We believe that this is an inadequate fix as it misses an upper-bounds check for overly positive values such as 0x7FFFFFFF (or (2,147,483,647 in decimal) before actually attempting to allocate the provided unverified number of bytes via the “chunkSize” variable. This missing upper-bounds check can lead to the applications depending upon snappy-java to allocate an inappropriate number of bytes on the heap which can then cause an java.lang.OutOfMemoryError exception. Under some specific conditions and contexts, this can lead to a Denial-of-Service (DoS) attack with a direct impact on the availability of the dependent implementations based on the usage of the snappy-java library for compression/decompression needs.

PoC

Compile and run the following code:

package org.example;
import org.xerial.snappy.SnappyInputStream;

import java.io.*;

public class Main {

    public static void main(String[] args) throws IOException {
        byte[] data = {-126, 'S', 'N', 'A', 'P', 'P', 'Y', 0, 0, 0, 0, 0, 0, 0, 0, 0,(byte) 0x7f, (byte) 0xff, (byte) 0xff, (byte) 0xff};
        SnappyInputStream in = new SnappyInputStream(new ByteArrayInputStream(data));
        byte[] out = new byte[50];
        try {
            in.read(out);
        }
        catch (Exception ignored) {
        }
    }
}

Impact

Denial of Service of applications dependent on snappy-java especially if ExitOnOutOfMemoryError or CrashOnOutOfMemoryError is configured on the JVM.

Credits

Jan Werner, Mukul Khullar and Bharadwaj Machiraju from Confluent's Application Security team.

We kindly request for a new CVE ID to be assigned once you acknowledge this vulnerability.

Record
GHSA-55g7-9cwv-5qfv
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-02
NVD 7.5

snappy-java is a Java port of the snappy, a fast C++ compresser/decompresser developed by Google. The SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur. All versions of snappy-java including the latest released version 1.1.10.3 are vulnerable to this issue. A fix has been introduced in commit 9f8c3cf74 which will be included in the 1.1.10.4 release. Users are advised to upgrade. Users unable to upgrade should only accept compressed data from trusted sources.

Record
CVE-2023-43642
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-02
OSV 7.5

Missing upper bound check on chunk length in snappy-java

snappy-java is a Java port of the snappy, a fast C++ compresser/decompresser developed by Google. The SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur. All versions of snappy-java including the latest released version 1.1.10.3 are vulnerable to this issue. A fix has been introduced in commit 9f8c3cf74 which will be included in the 1.1.10.4 release. Users are advised to upgrade. Users unable to upgrade should only accept compressed data from trusted sources.

Record
CVE-2023-43642
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-02
OSVDEBIAN-CVE-2023-43642 7.5

snappy-java is a Java port of the snappy, a fast C++ compresser/decompresser developed by Google. The SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur. All versions of snappy-java including the latest released version 1.1.10.3 are vulnerable to this issue. A fix has been introduced in commit 9f8c3cf74 which will be included in the 1.1.10.4 release. Users are advised to upgrade. Users unable to upgrade should only accept compressed data from trusted sources.

Record
DEBIAN-CVE-2023-43642
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 6 moreShow less
OSVGHSA-55g7-9cwv-5qfv 7.5

snappy-java's missing upper bound check on chunk length can lead to Denial of Service (DoS) impact

Summary

snappy-java is a data compression library in Java. Its SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too-large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur.

Scope

All versions of snappy-java including the latest released version 1.1.10.3. A fix is applied in 1.1.10.4

Details

While performing mitigation efforts related to CVE-2023-34455 in Confluent products, our Application Security team closely analyzed the fix that was accepted and merged into snappy-java version 1.1.10.1 in this commit. The check on line 421 only attempts to check if chunkSize is not a negative value. We believe that this is an inadequate fix as it misses an upper-bounds check for overly positive values such as 0x7FFFFFFF (or (2,147,483,647 in decimal) before actually attempting to allocate the provided unverified number of bytes via the “chunkSize” variable. This missing upper-bounds check can lead to the applications depending upon snappy-java to allocate an inappropriate number of bytes on the heap which can then cause an java.lang.OutOfMemoryError exception. Under some specific conditions and contexts, this can lead to a Denial-of-Service (DoS) attack with a direct impact on the availability of the dependent implementations based on the usage of the snappy-java library for compression/decompression needs.

PoC

Compile and run the following code:

package org.example;
import org.xerial.snappy.SnappyInputStream;

import java.io.*;

public class Main {

    public static void main(String[] args) throws IOException {
        byte[] data = {-126, 'S', 'N', 'A', 'P', 'P', 'Y', 0, 0, 0, 0, 0, 0, 0, 0, 0,(byte) 0x7f, (byte) 0xff, (byte) 0xff, (byte) 0xff};
        SnappyInputStream in = new SnappyInputStream(new ByteArrayInputStream(data));
        byte[] out = new byte[50];
        try {
            in.read(out);
        }
        catch (Exception ignored) {
        }
    }
}

Impact

Denial of Service of applications dependent on snappy-java especially if ExitOnOutOfMemoryError or CrashOnOutOfMemoryError is configured on the JVM.

Credits

Jan Werner, Mukul Khullar and Bharadwaj Machiraju from Confluent's Application Security team.

We kindly request for a new CVE ID to be assigned once you acknowledge this vulnerability.

Record
GHSA-55g7-9cwv-5qfv
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-02
OSVOESA-2023-1700 7.5

snappy-java security update

A Java port of the snappy, a fast compresser/decompresser written in C++.

Security Fix(es):

snappy-java is a Java port of the snappy, a fast C++ compresser/decompresser developed by Google. The SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur. All versions of snappy-java including the latest released version 1.1.10.3 are vulnerable to this issue. A fix has been introduced in commit 9f8c3cf74 which will be included in the 1.1.10.4 release. Users are advised to upgrade. Users unable to upgrade should only accept compressed data from trusted sources.(CVE-2023-43642)

Record
OESA-2023-1700
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVROOT-APP-MAVEN-CVE-2023-43642 7.5

CVE-2023-43642 in io.root.org.xerial.snappy:snappy-java - Patched by Root

Root has patched CVE-2023-43642 in the io.root.org.xerial.snappy:snappy-java package for Root:Maven. Multiple fixed versions available.

Record
ROOT-APP-MAVEN-CVE-2023-43642
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2023-43642 7.5

snappy-java is a Java port of the snappy, a fast C++ compresser/decompresser developed by Google. The SnappyInputStream was found to be vulnerable to Denial of Service (DoS) attacks when decompressing data with a too large chunk size. Due to missing upper bound check on chunk length, an unrecoverable fatal error can occur. All versions of snappy-java including the latest released version 1.1.10.3 are vulnerable to this issue. A fix has been introduced in commit 9f8c3cf74 which will be included in the 1.1.10.4 release. Users are advised to upgrade. Users unable to upgrade should only accept compressed data from trusted sources.

Record
UBUNTU-CVE-2023-43642
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVCLSA-2024-1732492826 No score

TuxCare security update for org.xerial.snappy:snappy-java (4 CVEs)

TuxCare rebuilt org.xerial.snappy:snappy-java to address 4 CVEs. Fixed in 1.1.8.4.tuxcare.

Record
CLSA-2024-1732492826
Updated
2026-11-02
OSVCLSA-2026-1777250302 No score

TuxCare security update for org.xerial.snappy:snappy-java (1 CVE)

TuxCare rebuilt org.xerial.snappy:snappy-java to address 1 CVE. Fixed in 1.1.2-tuxcare.2.

Record
CLSA-2026-1777250302
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
org.xerial.snappy:snappy-java
Maven
through 1.1.10.3
1.1.10.4
org.xerial.snappy:snappy-java
TuxCare:Maven
From an advisory covering 4 CVEs
1.1.8.4 up to 1.1.8.4.tuxcare
1.1.8.4.tuxcare
org.xerial.snappy:snappy-java
TuxCare:Maven
1.1.2 up to 1.1.2-tuxcare.2, plus listed versions
1.1.2-tuxcare.1
1.1.2-tuxcare.2
snappy-java
Debian:12
All versions, plus listed versions
1.1.10.5-11.1.10.5-21.1.10.7-11.1.10.8-11.1.8.3-1
None known
snappy-java
Debian:13
before 1.1.10.5-1
1.1.10.5-1
snappy-java
Debian:14
before 1.1.10.5-1
1.1.10.5-1
org.xerial.snappy:snappy-java
Maven
before 1.1.10.4, plus listed versions
1.0.1-rc11.0.1-rc21.0.1-rc31.0.1-rc41.0.3
Show 45 moreShow less
1.0.3-rc11.0.3-rc21.0.3-rc31.0.3-rc41.0.3.11.0.3.21.0.3.31.0.41.0.4.11.0.51.0.5-M11.0.5-M21.0.5-M31.0.5-M41.0.5.11.0.5.21.0.5.31.0.5.41.1.01.1.0-M11.1.0-M21.1.0-M31.1.0-M41.1.0.11.1.11.1.1-M11.1.1-M21.1.1-M31.1.1-M41.1.1.11.1.1.21.1.1.31.1.1.41.1.1.51.1.1.61.1.1.71.1.10.01.1.10.11.1.10.21.1.10.31.1.21.1.2-M11.1.2-RC11.1.2-RC21.1.2-RC3
1.1.10.4
snappy-java
openEuler:20.03-LTS-SP1
before 1.1.2.4-3.oe1
1.1.2.4-3.oe1
snappy-java
openEuler:20.03-LTS-SP3
before 1.1.2.4-3.oe1
1.1.2.4-3.oe1
snappy-java
openEuler:22.03-LTS
before 1.1.2.4-3.oe2203sp2
1.1.2.4-3.oe2203sp2
Show 13 moreShow less
Affected packages
PackageAffectedFixed
snappy-java
openEuler:22.03-LTS-SP1
before 1.1.2.4-3.oe2203sp1
1.1.2.4-3.oe2203sp1
snappy-java
openEuler:22.03-LTS-SP2
before 1.1.2.4-3.oe2203sp2
1.1.2.4-3.oe2203sp2
io.root.org.xerial.snappy:snappy-java
Root:Maven
before 1.1.10.1-root.io.1
1.1.10.1-root.io.11.1.10.1-root.io.2
org.xerial.snappy:snappy-java
Root:Maven
before 1.1.10.1-aikido.2
1.1.10.1-aikido.2
snappy-java
Ubuntu:14.04:LTS
All versions, plus listed versions
1.0.4.1~dfsg-1
None known
snappy-java
Ubuntu:16.04:LTS
All versions, plus listed versions
1.1.1.7-21.1.2-11.1.2.1-2
None known
snappy-java
Ubuntu:18.04:LTS
All versions, plus listed versions
1.1.4-1
None known
snappy-java
Ubuntu:20.04:LTS
All versions, plus listed versions
1.1.7.2-11.1.7.3-11.1.7.3-1build1
None known
snappy-java
Ubuntu:22.04:LTS
All versions, plus listed versions
1.1.8.3-1
None known
snappy-java
Ubuntu:24.04:LTS
All versions, plus listed versions
1.1.8.3-11.1.10.5-11.1.10.5-1build1
None known
snappy-java
Ubuntu:25.10
All versions, plus listed versions
1.1.10.7-1
None known
snappy-java
Ubuntu:26.10
All versions, plus listed versions
1.1.10.8-1
None known
snappy-java
Ubuntu:26.04:LTS
All versions, plus listed versions
1.1.10.7-11.1.10.8-1
None known

History

History
RecordedChangedSources
affected, facts
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2023-43642 is a high vulnerability (CVSS 7.5) in Xerial Snappy-java, published September 25, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.21%, the 68th percentile. Fixed in org.xerial.snappy:snappy-java 1.1.10.4.

References

Show 5 moreShow less
This page doesn't list everything

Left out here: 28 versions. The JSON record has them.

MoveEnter Open