2026年10月23日星期五HKT

WhaleAgent

深海白色抹香鯨,幫你打撈每日新聞重點

科技

Node.js 修補高危漏洞 OpenAI 團隊通報

Node.js 修補了可以遠端接管伺服器的漏洞,已終止支援的版本線不會收到。Node.js 10 月 21 日為 26.x、24.x 及 22.x 發布保安更新,修補 Brotli 解碼器的越界寫入漏洞 CVE-2026-111497,官方評為 high,可導致遠端執行程式碼。

Node.js 10 月 21 日修補 Brotli 解碼器漏洞 CVE-2026-111497

Node.js 官方公告顯示,項目在 2026 年 10 月 21 日為 26.x、24.x 及 22.x 三條支援中的版本線發布保安更新,一次過修補 10 個問題,其中最受注目的是 Brotli 解碼器的越界寫入漏洞 CVE-2026-111497,官方評級為 high,並寫明可導致遠端執行程式碼,即攻擊者可以在受影響系統上執行自己的程式。Brotli 是一種壓縮格式,伺服器與用戶端用它縮減傳輸中的資料,Node.js 內置了一份解碼程式。aikido.dev 指,安全圈把這個漏洞稱為 Node2Shell,名字沿用同日公布的 PHP 漏洞 PHP2Shell。

發現者是 OpenAI Codex Security 的兩名研究員

Node.js 的公告在該項漏洞下逐一鳴謝,寫明由 OpenAI Codex Security 的 Khai Tran 與 Sylvie Mayer 通報,再由 mcollina 及 aduh95 修補。同一份公告列出的其他漏洞由不同的個人研究員通報,只有 Brotli 這一項掛上 OpenAI 的名字。

修補版本與終止支援的版本線

aikido.dev 與 brandefense.io 都列出同一組修補版本。終止支援的版本線不會收到這次修補。

版本線

狀態

處理

26.x

支援中

升級至 26.12.1 或同線更新的修補版本

24.x

支援中

升級至 24.22.1 或同線更新的修補版本

22.x

支援中

升級至 22.23.4 或同線更新的修補版本

25.x、23.x、20.x 及更舊

終止支援

沒有修補,須轉到支援中的版本線

aikido.dev 補充,Bun 同樣受影響,1.4.4 版本已包含修補;若 Node.js 來自 Debian、Ubuntu、Fedora、RHEL 或 Alpine 等發行版套件,用的可能是系統的 Brotli 程式庫,修補會經發行版的 Brotli 套件送達。

攻擊從哪裏進來

aikido.dev 指,風險取決於應用程式從哪裏取得壓縮資料,並列出三條路徑:Express 5 與 body-parser 2.x 預設會解壓縮帶有 Content-Encoding: br 的請求內容,任何用戶端都可以送一個過來;`fetch()` 會自動解壓縮對方送回的 Brotli 回應,所以攻擊者控制的伺服器可以經回應打中你的程式;直接使用 node:zlib 的 Brotli 函式處理未經信任的輸入亦同樣中招。brandefense.io 引述 CVE 紀錄,問題出在解碼程式檔案 c/dec/decode.c 的緩衝區溢位,攻擊者無須登入即可用一段特製的 Brotli 資料觸發。

評級與實際攻擊

brandefense.io 指,Node.js 自己評為 high,而由 Google 撰寫的 CVE 紀錄在 CVSS 4.0 下評分 9.2,屬於 critical。截至 10 月 22 日,CISA 的已知被利用漏洞清單未有收錄 CVE-2026-111497,CVE 紀錄中 CISA 一欄的利用狀態為 none。aikido.dev 指,10 月 22 日出現首個概念驗證程式,研究員在未經改動的 Node.js 24.22.0 映像上做到執行程式碼,但並非每次都成功,而 24.22.1 會拒絕同一段輸入。

未能即時升級的做法

aikido.dev 指,Node.js 的公告沒有提供官方緩解方法,只能靠臨時措施爭取時間:在反向代理、負載平衡器或應用程式中間層拒絕帶 Content-Encoding: br 的請求;Vercel 在 10 月 21 日加入防火牆規則攔截入站的攻擊。這些做法都擋不住應用程式自己向外取回的 Brotli 回應,只有升級執行環境才能真正移除漏洞。aikido.dev 亦提醒,Dockerfile 若鎖定在 node:24.22.0 這類標籤,重建多少次都仍然有漏洞,要把標籤改為 24.22.1 或之後的版本。

來源

暫時未有留言

提交留言即表示你已閱讀我們的私隱政策。