觀點 · 資訊分享
Cloudflare 為 Brotli 漏洞緊急上架 WAF 規則:預設只記錄不攔截,上線前先檢查你的覆寫設定
Brotli 壓縮函式庫爆出 CVE-2026-111497 後,Cloudflare 在 10 月 25 日為 Managed Ruleset 緊急加了兩條規則,預設只記錄、不攔截。如果你曾把整組規則改成封鎖,新規則上線就會直接擋下符合的請求。
- 發布
- 2026-10-25
- 篇幅
- 約 5 分鐘 · 2,295 字
- 結構
- 7 節 + 4 題常見問題
- 標籤

一句話看懂:Brotli 壓縮函式庫爆出嚴重漏洞(CVE-2026-111497),Cloudflare 在 10 月 25 日緊急為 WAF 加了兩條規則,預設只記錄、不攔截;真正的解法還是更新 Brotli 與 Node.js。

先用白話講:Brotli 與 WAF 是什麼?
Brotli 是一種壓縮演算法,就像把行李用真空袋壓小再寄出,到了目的地再拆開。很多網站用它壓縮網頁資料,瀏覽器和伺服器都支援。
問題出在「拆開」的那一步。如果有人刻意把真空袋做壞,拆袋的程式一不小心,就會把東西塞到不該放的地方,破壞自己的記憶體。這種錯誤叫緩衝區溢位,嚴重時可以讓攻擊者執行自己的程式。
WAF(網站應用程式防火牆)則像大門口的檢查哨,Cloudflare 會依規則檢查進來的請求。
發生什麼事
| 日期 | 事件 |
|---|---|
| 10 月 21 日 | Google 釋出 Brotli 1.0.10、1.1.1、1.2.1 修正;Node.js 同日釋出安全版本 26.12.1、24.22.1、22.23.4 |
| 10 月 22 日 | NVD 公開 CVE-2026-111497,Google 給的 CVSS 4.0 分數是 9.2 |
| 10 月 25 日 | Cloudflare 緊急為 Managed Ruleset 新增兩條規則 |
依 CVE 記錄,Brotli 1.0.3 到 1.2.0 的解碼器有緩衝區溢位:遠端、不需登入的攻擊者,用特製的壓縮資料可能破壞記憶體、洩漏記憶體內容、造成服務中斷,甚至執行程式。Node.js 的公告說明,它內建的 Brotli 解碼器把無效的區塊切換誤判成「還需要更多資料」,於是一直把資料塞進只有 8 位元組的內部緩衝區;應用程式用 node:zlib 解壓縮攻擊者提供的 Brotli 資料時就會受影響,Node.js 把它評為 high,影響 26.x、24.x、22.x。
Cloudflare 新增的兩條規則
| 規則 | 比對什麼 | 預設動作 |
|---|---|---|
| Brotli - Request Content-Encoding | 請求標頭 Content-Encoding: br,也就是請求本文是 Brotli 壓縮 |
Log |
| Next.js - Image Optimizer Path | 請求網址 /_next/image |
Log |
- Brotli 規則不比對
Accept-Encoding: br,也不影響 Cloudflare 的 Brotli 回應壓縮設定 - 兩條規則都可能比對到合法流量:有些合法的客戶端會送 Brotli 壓縮的請求本文,
/_next/image則是 Next.js 正常的圖片最佳化路徑 - Log 模式只提供可見度,不會阻擋;你可以在分析資料裡查看符合的請求,再決定要不要改成封鎖
- 官方提醒:把 Next.js 規則改成 Block,可能讓最佳化後的圖片載不出來
公告沒有說明為什麼特別針對 /_next/image,也沒有列出免費方案規則集的變更,這次只列了 Cloudflare Managed Ruleset。
給開發者的技術細節
- 先查覆寫設定:如果你曾設定整組規則(ruleset 層級)的動作覆寫為 Block,這兩條新規則會被覆寫成封鎖,上線後可能立刻攔截請求,造成誤擋。官方建議針對這兩條規則做個別覆寫,先設成 Log,觀察符合的請求之後再決定是否改成 Block
- 更新軟體:Brotli 函式庫升到 1.0.10、1.1.1 或 1.2.1;Node.js 升到 26.12.1、24.22.1 或 22.23.4 以上。還有哪些軟體內含 Brotli,要用你自己的相依套件清單確認
- 把規則當緩衝:Log 模式不是修補,真正的保護來自更新
我的看法
這次 Cloudflare 的做法我覺得很務實:預設只記錄,不直接擋。因為 Brotli 請求本文和 /_next/image 本來就有合法用途,如果一律封鎖,很容易誤傷正常使用者。
但這也帶來一個容易被忽略的陷阱:以前為了省事,把整組託管規則一次調成 Block 的人,這兩條新規則會直接跟著變成封鎖。上線前花五分鐘看一下自己的覆寫設定,比事後查「為什麼圖片壞掉」輕鬆得多。另外,用 Nuxt、Next.js 這類 Node 框架的人要記得:WAF 擋在前面不代表後面可以不更新,Node.js 與基礎映像的更新才是根本的解法。
名詞小辭典
- Brotli:Google 開發的壓縮演算法,常用於網頁資料傳輸,瀏覽器請求標頭裡的
br就是指它。 - WAF:網站應用程式防火牆,依規則檢查進來的請求,符合就記錄或阻擋。
- 緩衝區溢位:程式把資料寫到超出預留空間的地方,輕則當機,重則被攻擊者利用來執行程式。
- 規則覆寫(Override):自己改掉某條規則或整組規則的預設動作,例如把 Log 改成 Block。