CVE-2023-43642
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.
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
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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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
| Package | Affected | Fixed |
|---|---|---|
org.xerial.snappy:snappy-javaMaven |
through 1.1.10.3 | 1.1.10.4 |
org.xerial.snappy:snappy-javaTuxCare: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-javaTuxCare: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-javaDebian: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-javaDebian:13 |
before 1.1.10.5-1 | 1.1.10.5-1 |
snappy-javaDebian:14 |
before 1.1.10.5-1 | 1.1.10.5-1 |
org.xerial.snappy:snappy-javaMaven |
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 less1.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-javaopenEuler:20.03-LTS-SP1 |
before 1.1.2.4-3.oe1 | 1.1.2.4-3.oe1 |
snappy-javaopenEuler:20.03-LTS-SP3 |
before 1.1.2.4-3.oe1 | 1.1.2.4-3.oe1 |
snappy-javaopenEuler:22.03-LTS |
before 1.1.2.4-3.oe2203sp2 | 1.1.2.4-3.oe2203sp2 |
Show 13 moreShow less
| Package | Affected | Fixed |
|---|---|---|
snappy-javaopenEuler:22.03-LTS-SP1 |
before 1.1.2.4-3.oe2203sp1 | 1.1.2.4-3.oe2203sp1 |
snappy-javaopenEuler:22.03-LTS-SP2 |
before 1.1.2.4-3.oe2203sp2 | 1.1.2.4-3.oe2203sp2 |
io.root.org.xerial.snappy:snappy-javaRoot: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-javaRoot:Maven |
before 1.1.10.1-aikido.2 | 1.1.10.1-aikido.2 |
snappy-javaUbuntu:14.04:LTS |
All versions, plus listed versions 1.0.4.1~dfsg-1 |
None known |
snappy-javaUbuntu:16.04:LTS |
All versions, plus listed versions 1.1.1.7-21.1.2-11.1.2.1-2 |
None known |
snappy-javaUbuntu:18.04:LTS |
All versions, plus listed versions 1.1.4-1 |
None known |
snappy-javaUbuntu:20.04:LTS |
All versions, plus listed versions 1.1.7.2-11.1.7.3-11.1.7.3-1build1 |
None known |
snappy-javaUbuntu:22.04:LTS |
All versions, plus listed versions 1.1.8.3-1 |
None known |
snappy-javaUbuntu:24.04:LTS |
All versions, plus listed versions 1.1.8.3-11.1.10.5-11.1.10.5-1build1 |
None known |
snappy-javaUbuntu:25.10 |
All versions, plus listed versions 1.1.10.7-1 |
None known |
snappy-javaUbuntu:26.10 |
All versions, plus listed versions 1.1.10.8-1 |
None known |
snappy-javaUbuntu:26.04:LTS |
All versions, plus listed versions 1.1.10.7-11.1.10.8-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE 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
github.com/xerial/snappy-java/security/advisories/GHSA-55g7-9cwv-5qfv
github.com/xerial/snappy-java/commit/9f8c3cf74223ed0a8a834134be9c917b9f10ceb5
github.com/xerial/snappy-java/releases/tag/v1.1.10.4
nvd.nist.gov/vuln/detail/CVE-2023-43642
github.com/advisories/GHSA-55g7-9cwv-5qfv
github.com/CVEProject/cvelistV5/tree/main/cves/2023/43xxx/CVE-2023-43642.json
Left out here: 28 versions. The JSON record has them.