nginx 在 2026 年 9 月 15 日同時發布了穩定版 1.30.5 和主線版 1.31.6,修復一個安全問題:CVE-2026-90439。官方變更說明的原話是:在某些設定下,使用 HTTP/3 且搭配 OpenSSL 3.5.0 及更早版本時,worker 程序裡可能發生堆記憶體緩衝區溢位。官方安全公告把它歸在 ngx_http_v3_module,評級為中危,受影響版本是 1.29.2 到 1.31.5,修復版本是 1.30.5 和 1.31.6 及以上。
先判斷你在不在範圍裡
三個條件同時滿足才受影響:
- 版本在 1.29.2 到 1.31.5 之間:
nginx -v。 - 開了 HTTP/3:設定裡有
listen ... quic。用nginx -T | grep -n quic查一下完整生效設定,別隻看主設定檔。 - 編譯時用的是 OpenSSL 3.5.0 或更早:
nginx -V輸出裡會寫「built with OpenSSL x.y.z」。
沒開 HTTP/3 的網站不受這個漏洞影響。不過這次更新還帶了一項行為變化:在普通 TLS 連線裡收到的 QUIC transport parameters 擴充,現在一律忽略。正常客戶端不會這樣發,一般無感。
別漏了 njs 和 7 月那一批
如果你用到了 nginx 的 JavaScript 模組 njs,9 月 2 日發布的 njs 1.0.1 修了三個漏洞:js_access 的存取控制繞過(CVE-2026-18329)、ngx.fetch() 導致 worker 崩潰(CVE-2026-78222)、xml.exclusiveC14n() 的堆緩衝區溢位(CVE-2026-78689)。
另外,如果你還停在 1.30.4 之前,需要補的不止這一個。7 月 15 日的 1.30.4 修了 map 加正則的緩衝區溢位(CVE-2026-42533,我們在當時的文章裡詳細寫過)、slice 模組的未初始化記憶體存取(CVE-2026-60005)和 SSI 模組的釋放後使用(CVE-2026-56434)。直接升到 1.30.5,三件事一次解決。
升級時注意
- 發行版自帶的 nginx 往往是向後移植修補程式,版本號不會變成 1.30.5,以發行版的安全公告為準;用 nginx 官方套件庫的,直接升到 1.30.5 或 1.31.6。
- 升級後先
nginx -t再重新載入,確認設定能通過;HTTP/3 走 UDP 443,升級後記得從外部網路驗證一次。 - 還在搭第一個站的,用 Nginx 搭建第一個網站和Let's Encrypt SSL 憑證設定是基礎;升級或重新載入之後網站打不開,按 502 / 504 排查指南一步步查。