[C++] Bundled Brotli 1.0.9 is affected by CVE-2026-111497 (decoder out-of-bounds write)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
首先检查 cpp/thirdparty/versions.txt 中固定的 Brotli 版本,并将捆绑的解码器头文件与上游修复提交 0ed4268a4401abcb4472096340477cf4af7d1a2b 对照。将捆绑版本更新到 v1.2.1 或应用该修复,然后运行相关的 Brotli 和 Parquet 或 IPC 测试。完成标准是捆绑的解码器包含该修复(包括所述的错误定义),并且受影响的压缩文件能够得到安全处理。
由索引模型根据 Issue 内容生成。
描述
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:
- Advisory: https://github.com/advisories/GHSA-9v8h-qqgm-4m35
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-111497
- Upstream release: https://github.com/google/brotli/releases/tag/v1.2.1
- Overview of affected software and bundled copies: https://broccoli2shell.com/
- 主要语言
- C++
- 星标
- 17.2k
- 派生
- 4.4k
- 平均合并
- 3 天 5 小时
- 30 天内合并 PR
- 76
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/arrow 的其他 Issue
-
Component: Continuous Integration Component: Documentation
难度 2/5 1-3 小时 新手友好度 68/100
apache/arrow#54696 · 2 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
[R][Parquet] ParquetReaderProperties does not expose page_checksum_verification, so a corrupt page CRC reads silently可能重新可做 关联的 PR 已关闭且未合并。 未关闭Component: R good-first-issue Type: enhancement
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
[C++][Python] IPC reader rejects a DictionaryEncoding without indexType, which the format allows可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭Component: C++ Component: Python Type: bug
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
[R] Silent loss of metadata integrity for date-time and numeric attributes in write_parquet()/read_parquet()可能重新可做 @james-finn-travers 于 27 天前认领,目前没有进行中的 PR。 未关闭Component: R Type: bug
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
[R] Expose ignore_extra_columns and pad_short_rows CSV parse options可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭Component: R good-first-issue Type: enhancement
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
相似的 Issue
-
good first issue invalid
难度 1/5 1 小时以内 新手友好度 72/100
DanielJerolm/gpcc#74 ·
-
难度 2/5 1-3 小时 新手友好度 76/100
patrick-hudson/put.gd-desktop#808 ·
维护者通常 1 天内回复
-
DPI change is not fully handled in the cascading window on Windows可能已有人在做 @yukawa 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 4 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
enhancement Ready for final check
难度 2/5 1-3 小时 新手友好度 79/100
mpogue2/SquareDesk#1818 · 1 条评论 ·