| Package | Affected versions | Patched versions |
|---|---|---|
| org.xerial.snappy:snappy-java | < 1.1.10.9 | 1.1.10.9 |
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.
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.
Validate offsets and lengths before calling these methods.
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free