Description
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.
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 | 35.0.1-r1 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | org.xerial.snappy:snappy-java | < 1.1.10.1 | 1.1.10.1 | GHSA-pqr6-cmr2-h8hf |
Advisories 8
- WID-SEC-2024-0794 Dell ECS: Mehrere Schwachstellen BSI CERT-Bund (WID) · Aug 11, 2026
- WID-SEC-2026-1194 Oracle Communications: Mehrere Schwachstellen BSI CERT-Bund (WID) · Apr 21, 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-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-pqr6-cmr2-h8hf
- https://github.com/xerial/snappy-java/commit/820e2e074c58748b41dbd547f4edba9e108ad905
- https://github.com/xerial/snappy-java/blob/05c39b2ca9b5b7b39611529cc302d3d796329611/src/main/java/org/xerial/snappy/BitShuffle.java#L107
- https://github.com/xerial/snappy-java/blob/master/src/main/java/org/xerial/snappy/BitShuffle.java