程式忍者PGNinja

Hacker News

Brotli 解碼器重大漏洞可讓 Node.js 等程式被遠端執行程式碼

· Brotli 解碼器被發現嚴重安全漏洞,影響 Node.js、Python 等套件,攻擊者可藉由惡意壓縮資料觸發緩衝區外寫入並執行任意程式碼。

這起編號 CVE-2026-111497、暱稱 Broccoli2Shell 的漏洞,出現在 Google 開發的 Brotli 壓縮解碼器版本 1.0.3 到 1.2.0 之間,由 OpenAI Codex Security 的研究人員 Khai Tran 與 Sylvie Mayer 發現並回報給 Node.js 專案。Brotli 是網頁伺服器與瀏覽器之間常用的資料壓縮格式,廣泛內建在 Node.js、Python 套件與其他程式語言的函式庫中,因此這個漏洞影響範圍相當廣。

問題出在解碼器裡的 DecodeBlockTypeAndLength 函式,它只回傳布林值,呼叫端因此無法分辨「資料格式錯誤」與「資料還沒傳完」這兩種情況。攻擊者可以故意構造一段無法正常執行的區塊切換指令,讓解碼器誤判成資料不足,持續把資料寫進一個只有八位元組大小的緩衝區之外,造成記憶體越界寫入,進而可能被用來執行任意程式碼。

受影響的版本包括 Node.js 22、24、26 系列的舊版,以及 Python 的 Brotli 與 brotlicffi 套件,連 .NET runtime、DuckDB、Apache Arrow 都受牽連。資安團隊 Imperva Red Team 已經證實能在未經修改的官方 Node.js 24.22.0 Linux arm64 環境上成功執行攻擊程式碼,公開的概念驗證程式也在 2026 年 10 月 22 日出現,這也是這篇文章在 Hacker News 上引發大量討論與轉貼的原因。

對學程式的孩子與家長來說,這則新聞比較偏資安與軟體維運的產業面,但也是個很好的提醒:程式裡看起來很基本的函式,例如一個只回傳「對或錯」的函式,如果設計時沒有考慮周全,就可能被有心人士利用來攻擊整個系統。這也說明了為什麼軟體工程師平時要養成把套件更新到最新版本的習慣,安全性往往就藏在這些細節裡。

資安開源漏洞軟體工程

其他新聞