Skip to content

[C++] Bundled Brotli 1.0.9 is affected by CVE-2026-111497 (decoder out-of-bounds write) #55166

Closed as duplicate

Description

@MagicalTux

CVE-2026-111497 is an out-of-bounds write in the Brotli C decoder (c/dec/decode.c, versions 1.0.3 through 1.2.0). A crafted stream can request an impossible block switch, which the decoder mistakes for "needs more input". It then writes past the end of an internal 8-byte buffer. GitHub rates it 9.2 (CVSS 4.0), and Node.js shipped fixes for it on 2026-10-21.

cpp/thirdparty/versions.txt pins ARROW_BROTLI_BUILD_VERSION=v1.0.9, and that version is used whenever Brotli is built as a bundled dependency. In those builds, reading a Parquet or IPC file that contains Brotli-compressed data passes the file's contents to the decoder, so a crafted file can trigger the bug. Builds that link a patched system Brotli aren't affected.

Upstream fixed this in Brotli 1.0.10, 1.1.1 and 1.2.1 (fix commit). Updating the bundled copy to v1.2.1, or applying that commit, resolves it. A patched copy is easy to recognise: its decode.h defines BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH (-17).

References:

Activity

  1. alinaliBQ commented on Oct 26, 2026

    @alinaliBQ
    Collaborator

    #55165 has been kindly raised by @CurtHagenlocher to bump brotli to 1.2.1

  2. insertjokehere commented on Oct 26, 2026

    @insertjokehere

    Aikido are flagging this as Critical-severity: https://intel.aikido.dev/cve/AIKIDO-2026-507165

    Not sure if they've done any analysis to show if the affected code path is reachable under normal circumstances, but it would be good to get a confirmation from the arrow team if they do/don't consider this to be an issue that impacts this library

  3. tvoipio commented on Oct 27, 2026

    @tvoipio

    Additionally, it would be great to understand how/if this affects the use of non-C bindings to Arrow, e.g. PyArrow (and indirectly e.g. Pandas).

  4. kou commented on Oct 27, 2026

    @kou
    Member

    I close this as duplicate of #55165.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions