GHSA-xqrx-qh46-34m7
snappy-java: JVM crash from unchecked ranges in Snappy.arrayCopy and SnappyOutputStream.rawWrite
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| Maven | org.xerial.snappy:snappy-java | < 1.1.10.9 | 1.1.10.9 |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
`Snappy.arrayCopy(Object src, int offset, int byteLength, Object dest, int destOffset)` called a native `memcpy` without validating the ranges. A negative or oversized `byteLength` or offset read or wrote outside the arrays and crashed the JVM. `SnappyOutputStream.rawWrite` and `SnappyInputStream.rawRead`, and therefore the typed-array `write`/`read` methods, pass caller-supplied ranges to this method.
### Patches
Fixed in 1.1.10.9 (#741). `Snappy.arrayCopy` checks both ranges before copying. The stream `read`/`write` methods validate offsets and lengths, and reject typed-array ranges whose byte size overflows `int`.
### Workarounds
Validate offsets and lengths before calling these methods.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/xerial/snappy-java/security/advisories/GHSA-xqrx-qh46-34m7
- https://nvd.nist.gov/vuln/detail/CVE-2026-116590
- https://github.com/xerial/snappy-java/pull/741
- https://github.com/xerial/snappy-java/commit/2d7ca71c087a98f1219fb2d51909f3891c3ce77b
- https://github.com/xerial/snappy-java
- https://github.com/xerial/snappy-java/releases/tag/v1.1.10.9