Description
snappy-java is a fast compressor/decompressor for Java. Due to use of an unchecked chunk length, an unrecoverable fatal error can occur in versions prior to 1.1.10.1.
The code in the function hasNextChunk in the fileSnappyInputStream.java checks if a given stream has more chunks to read. It does that by attempting to read 4 bytes. If it wasn’t possible to read the 4 bytes, the function returns false. Otherwise, if 4 bytes were available, the code treats them as the length of the next chunk.
In the case that the `compressed` variable is null, a byte array is allocated with the size given by the input data. Since the code doesn’t test the legality of the `chunkSize` variable, it is possible to pass a negative number (such as 0xFFFFFFFF which is -1), which will cause the code to raise a `java.lang.NegativeArraySizeException` exception. A worse case would happen when passing a huge positive value (such as 0x7FFFFFFF), which would raise the fatal `java.lang.OutOfMemoryError` error.
Version 1.1.10.1 contains a patch for this issue.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| xerial | snappy-java | < 1.1.10.1 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | snappy-java | No fix yet | — |
| Ubuntu 26.04 LTS | snappy-java | No fix yet | — |
| Ubuntu 25.10 | snappy-java | No fix yet | — |
| Ubuntu 24.04 LTS | snappy-java | No fix yet | — |
| Ubuntu 22.04 LTS | snappy-java | No fix yet | — |
Show 4 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 20.04 LTS | snappy-java | No fix yet | — |
| Ubuntu 18.04 LTS | snappy-java | No fix yet | — |
| Ubuntu 16.04 LTS | snappy-java | No fix yet | — |
| Ubuntu 14.04 LTS | snappy-java | No fix yet | — |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | druid | 37.0.0-r0 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | org.xerial.snappy:snappy-java | < 1.1.10.1 | 1.1.10.1 | GHSA-qcwq-55hx-v3vh |
Advisories 8
- WID-SEC-2024-0794 Dell ECS: Mehrere Schwachstellen BSI CERT-Bund (WID) · Aug 11, 2026
- WID-SEC-2023-2625 IBM QRadar SIEM: Mehrere Schwachstellen BSI CERT-Bund (WID) · Aug 6, 2025
- WID-SEC-2023-1754 IBM InfoSphere Information Server: Mehrere Schwachstellen BSI CERT-Bund (WID) · Feb 11, 2025
- WID-SEC-2024-3684 IBM QRadar SIEM: Mehrere Schwachstellen BSI CERT-Bund (WID) · Dec 11, 2024
- WID-SEC-2024-0671 Atlassian Jira Software: Mehrere Schwachstellen ermöglichen Codeausführung und DoS BSI CERT-Bund (WID) · Nov 24, 2024
- WID-SEC-2023-1868 Apache Kafka: Schwachstelle ermöglicht Denial of Service BSI CERT-Bund (WID) · Sep 19, 2024
- WID-SEC-2024-0101 Atlassian Bitbucket: Mehrere Schwachstellen BSI CERT-Bund (WID) · Feb 20, 2024
- WID-SEC-2023-2774 IBM Maximo Asset Management: Mehrere Schwachstellen ermöglichen Denial of Service BSI CERT-Bund (WID) · Oct 29, 2023
References
- https://github.com/xerial/snappy-java/security/advisories/GHSA-qcwq-55hx-v3vh
- https://github.com/xerial/snappy-java/commit/3bf67857fcf70d9eea56eed4af7c925671e8eaea
- https://github.com/xerial/snappy-java/blob/05c39b2ca9b5b7b39611529cc302d3d796329611/src/main/java/org/xerial/snappy/SnappyInputStream.java#L388
- https://github.com/xerial/snappy-java/blob/master/src/main/java/org/xerial/snappy/SnappyInputStream.java
- https://security.netapp.com/advisory/ntap-20230818-0009/