Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open Beginner friendly
#55,166 2 comments 8 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
75/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
cpp
Domain
backend, security

Research direction

Start by checking the Brotli pin in cpp/thirdparty/versions.txt and the bundled decoder headers against upstream fix commit 0ed4268a4401abcb4472096340477cf4af7d1a2b. Update the bundled version to v1.2.1 or apply the fix, then run the relevant Brotli and Parquet or IPC tests. Done means the bundled decoder contains the fix, including the stated error definition, and affected compressed files are handled safely.

Written by the indexing model from the issue text.

Description

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:

Dominant language
C++
Stars
17.2k
Forks
4.4k
Avg merge
2d 20h
Merged PRs (30d)
66

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/arrow

All issues in apache/arrow

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.