資訊安全

Nginx 一次修補六個 CVE:今晚就更新,別等到這個 sprint

2026.05.15 · 159 次瀏覽
Nginx 一次修補六個 CVE:今晚就更新,別等到這個 sprint

5 月 13 日的緊急發布,告訴我們「漏洞被利用」的速度已經變成什麼樣

2026 年 5 月 13 日,Nginx 團隊發布 1.31.0(mainline)與 1.30.1(stable),一口氣修補的不是一個,而是六個 CVE:HTTP/2 request injection(CVE-2026-42926)、rewrite 模組的緩衝區溢位(CVE-2026-42945)、緩衝區越界讀取(CVE-2026-42946、CVE-2026-42934)、HTTP/3 位址欺騙(CVE-2026-40460),以及 OCSP 請求中的 use-after-free(CVE-2026-40701)。同一週,NGINX Plus 也轉向新的發行模式,採用每年一次、聚焦穩定與安全的長期支援(LTS)版本。


對全網際網路部署最廣的網頁伺服器來說,單次發布修六個 CVE,不是一則例行維護通知,而是一個訊號。而它落在一個本來就已經很不平靜的月份——這個月有 Canvas/Instructure 的資料外洩(ShinyHunters 宣稱從 8,809 間機構、約 2.75 億名使用者手中竊取 3.65 TB 資料,Canvas 的登入頁甚至直接被換成勒索訊息)——也有 Mandiant 的 M-Trends 2026 報告指出「漏洞被利用的時間已經變成負的」:28.3% 的 CVE 在揭露後 24 小時內就被利用,而且漏洞利用程式常常比修補檔還早出現。


把這三件事擺在一起,得到的操作結論很直白:「漏洞被公告」到「它正被用來打你」之間的時間窗,現在以小時計。對任何在 Laravel 應用前面跑 Nginx 的人,這週的實務檢查清單很短:立刻升級到 1.31.0 或 1.30.1;如果你在 Nginx 上終結 HTTP/2 或 HTTP/3,請把這件事當成緊急、而不是排程;並且稽核你的 rewrite 規則,因為那個模組的溢位,正是那種藏在「兩年沒人讀過的設定檔」裡的東西。


這也提醒我們:網站架構的安全是分層的,而且各層各自會失守。Canvas 的外洩不是什麼精巧的 zero-day——是一段根本不該存在的存取權、一段本該被速率限制的資料外傳,以及一個本不該被攻擊者所用路徑寫入的登入頁。修補 Nginx 修好的是伺服器,它修不好過度寬鬆的 API token、修不好那些招來 SQL Injection 的「沒用參數化查詢」、修不好那些招來 XSS 的「沒做跳脫的輸出」,也修不好從公開網路就能連到的後台端點。伺服器是其中一層,你的 Laravel middleware、你的 API 權限模型、你的防火牆規則,是其他幾層。


我的觀點


六個 CVE 一次掉下來時,直覺是開一張工單、併進下一個 sprint。這個直覺現在是錯的。在一個「漏洞利用比修補還早」的世界裡,「我們之後會處理」其實是「我們故意讓自己處於可被攻擊狀態」的決定。我的建議是:把你的安全更新管線跟功能管線完全分開。安全修補不該等 sprint 規劃、不該等 code freeze、不該等發布窗口——它該有一條常設的、預先核准的快速通道。Canvas 的外洩事件,讓 Instructure 付出的代價不只是透明度,而是信任。而花一個晚上升級 Nginx,是這整個產業裡最便宜的保險。今晚就保。


資料來源