GHSA-xqrx-qh46-34m7MediumCVSS 5.9
snappy-java: JVM crash from unchecked ranges in Snappy.arrayCopy and SnappyOutputStream.rawWrite
🔗 CVE IDs covered (1)
📋 Description
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.
🎯 Affected products1
- maven/org.xerial.snappy:snappy-java:<= 1.1.10.8
🔗 References (6)
- 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/releases/tag/v1.1.10.9
- https://github.com/advisories/GHSA-xqrx-qh46-34m7