【相關:Node.js】Cloudflare 為 Brotli 漏洞 CVE-2026-111497 推出緊急 WAF 規則,但預設只記錄、不封鎖
背景:Node.js 在 10 月 21 日的安全更新中修補了 CVE-2026-111497(官方評為 high)。官方公告說明,Node.js 內建的 Brotli 解碼器在遇到無效的 block switch 時,把它當成「需要更多輸入」而不是格式錯誤,導致串流解碼器持續把輸入寫進一個 8 位元組的內部緩衝區而溢位。只要攻擊者能讓應用程式用 node:zlib 解壓縮他提供的 Brotli 資料,就可能造成程序記憶體毀損,後果包括當機、記憶體內容外洩,甚至遠端執行程式碼。受影響的是 Node.js 26.x、24.x 與 22.x,修補版本為 v26.12.1、v24.22.1、v22.23.4。這個漏洞由 OpenAI Codex Security 的研究人員回報。
今天的新進展:Cloudflare 在 10 月 25 日發布緊急 WAF 版本,在 Cloudflare Managed Ruleset 新增兩條與這個漏洞相關的規則,預設啟用,但動作都是「Log(只記錄)」:
- Brotli 規則:比對宣告請求本文用 Brotli 編碼的請求(
Content-Encoding: br),不比對Accept-Encoding: br,也不影響 Cloudflare 回應端的 Brotli 壓縮設定。 - Next.js 規則:比對打到 Next.js 圖片最佳化端點
/_next/image的請求。Cloudflare 特別提醒,若改成 Block,可能讓網站的最佳化圖片載入失敗。
為什麼重要:兩條規則都會同時命中正常流量,所以 Cloudflare 選擇先讓客戶觀察、自行決定要不要封鎖。這代表 WAF 很難乾淨地擋住這類漏洞,真正的修補還是要靠升級。另外,Cloudflare 把 Next.js 圖片端點列為相關路徑,用 Next.js 的團隊值得特別檢查。Cloudflare 也警告:如果你在規則集層級設過「全部改成 Block」的覆寫,這兩條規則一上線就可能誤擋正常請求。
開發者該做什麼: