GHSA-q233-g92q-qxp6

    Dashboard / Vulnerabilities / GHSA-q233-g92q-qxp6

    GHSA-q233-g92q-qxp6

    Published: 27 Oct 2026Last Modified: 27 Oct 2026

    Summary: snappy-java: Unbounded memory allocation from attacker-declared uncompressed lengtha

    Details: ### Impact Several decompression paths in snappy-java allocate an output buffer sized by the uncompressed length declared in the first bytes of the compressed data, before decompressing or validating it. A few bytes of crafted input can therefore force an allocation of up to 2 GB, causing `OutOfMemoryError` (denial of service), or a `NegativeArraySizeException` for declared lengths of 2^31 or more. Affected entry points include `Snappy.uncompress(byte[])`, `Snappy.uncompressString`, the `Snappy.uncompress*Array` methods, `SnappyInputStream`, and `SnappyFramedInputStream`. The `maxChunkSize` limit added for CVE-2023-43642 bounds only the compressed chunk length, so it does not prevent this. ### Patches Fixed in 1.1.10.9 (#739). `Snappy.uncompressedLength()` now rejects negative declared lengths, and lengths larger than any valid Snappy stream of the given size can produce. The densest Snappy element expands 3 bytes to 64, so the limit is 64/3 of the compressed size. Allocations are therefore proportional to the input actually received. ### Workarounds Before decompressing untrusted data, check that `Snappy.uncompressedLength(input)` is within an application-specific limit.

    Affected packages

    Package

    Name: org.xerial.snappy:snappy-java

    Purl: pkg:maven/org.xerial.snappy/snappy-java

    Affected ranges

    Type: ECOSYSTEM

    Events:

    Introduced- 0
    Fixed -1.1.10.9

    Affected versions

    1.0.1-rc1
    1.0.1-rc2
    1.0.1-rc3
    1.0.1-rc4
    1.0.3
    1.0.3-rc1
    1.0.3-rc2
    1.0.3-rc3
    1.0.3-rc4
    1.0.3.1
    1.0.3.2
    1.0.3.3
    1.0.4
    1.0.4.1
    1.0.5
    1.0.5-M1
    1.0.5-M2
    1.0.5-M3
    1.0.5-M4
    1.0.5.1
    1.0.5.2
    1.0.5.3
    1.0.5.4

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High