GHSA-gwq9-9ffj-mvrv: High severity maven/org.xerial.snappy:snappy-java vulnerability

Published Oct 27, 2026
·
Updated

Impact Snappy.uncompressCharArray, uncompressShortArray, uncompressIntArray, uncompressLongArray, uncompressFloatArray and uncompressDoubleArray sized the result array by dividing the declared uncompressed byte length by the element size, but native code wrote the full byte length. If the declared length is not a multiple of the element size, up to 7 bytes are written past the end of the Java array, corrupting the heap.

Patches Fixed in 1.1.10.9 (#739). These methods now reject uncompressed lengths that are not a multiple of the element size with SnappyIOException.

Workarounds Check that Snappy.uncompressedLength(input) is a multiple of the element size before calling these methods.

Affected Software

1 affected componentFixes available
maven/org.xerial.snappy:snappy-java<=1.1.10.8
1.1.10.9

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade maven/org.xerial.snappy:snappy-java to a version that resolves this vulnerability.

    Fixed in 1.1.10.9
  2. Upgrade

    Upgrade xerial/snappy-java to a version that resolves this vulnerability.

    Fixed in 1.1.10.9
  3. Compensating control

    Before calling Snappy.uncompressCharArray, uncompressShortArray, uncompressIntArray, uncompressLongArray, uncompressFloatArray, or uncompressDoubleArray, check that Snappy.uncompressedLength(input) is a multiple of the element size.

Event History

Oct 27, 2026
Advisory Published
via GitHub·03:33 PM
Data Sourced
via GitHub·03:33 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which applications are exposed to this issue?

Applications using org.xerial.snappy:snappy-java and calling one of the affected typed uncompression methods are exposed when they process compressed input whose declared uncompressed length is not divisible by that method's element size. The affected methods are uncompressCharArray, uncompressShortArray, uncompressIntArray, uncompressLongArray, uncompressFloatArray, and uncompressDoubleArray.

2

What does an attacker need to trigger the heap corruption?

An attacker needs to supply compressed input with a declared uncompressed byte length that is not a multiple of the element size for the typed array method the application calls. No authentication or user interaction is indicated by the supplied vector.

3

Are applications using the affected methods safe by default?

No. The vulnerable methods allocate the Java result array using a truncated element count, while native code writes the declared byte length; malformed lengths can therefore write up to 7 bytes beyond the array.

4

What can be done if updating is not immediately possible?

Before calling an affected typed uncompression method, call Snappy.uncompressedLength(input) and verify that the returned value is a multiple of that method's element size. Reject input that fails this check.

5

Which release contains the fix, and how does it change behavior?

The issue is fixed in version 1.1.10.9. Fixed methods reject declared uncompressed lengths that are not multiples of the element size by throwing SnappyIOException.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203