nginx 官方 10 月 14 日同时发布了稳定版 1.30.6 和主线版 1.31.7,一次修复 5 个安全漏洞。距离 9 月 15 日的 1.30.5 刚过一个月,这次是另一批漏洞。nginx.org 的安全公告页把 5 个都标为 medium(中危);不过 F5 在 CVE 记录里给其中 3 个打了 CVSS 3.1 8.1 分(CVSS v4 9.2),所以别只看「中危」两个字。
5 个漏洞,各自的触发条件
- CVE-2026-15176(受影响 0.1.29–1.31.6):使用
alias指令时,如果请求 URI 先被rewrite指令改写、再映射成文件路径,worker 进程可能发生缓冲区溢出。F5 评分 8.1。 - CVE-2026-93479(受影响 1.30.0–1.30.5、1.31.2–1.31.6):计算带变量的字符串表达式时可能发生缓冲区溢出,涉及 http 和 stream 模块里的文档根目录计算和请求日志。F5 评分 8.1。
- CVE-2026-95101(受影响 1.25.0–1.31.6):使用 HTTP/3 时,未知帧的一部分可能被当成请求体,可能绕过
client_max_body_size限制,或者往代理出去的请求里注入数据。 - CVE-2026-97629(受影响 1.23.2–1.31.6):使用 TLS 会话票据密钥轮换时,有一个密钥没有被初始化,可能被用来伪造会话。
- CVE-2026-97205(受影响 0.8.11–1.31.6):开启异步文件 I/O(AIO)时,如果 SSI 页面里有
include virtual命令,某些配置下可能出现释放后使用。F5 评分 8.1。
怎么查、怎么升
- 先用
nginx -v看版本,用nginx -T导出完整配置,搜一下alias、rewrite、ssi on、aio和listen ... quic(HTTP/3)这几项。 - 用 nginx.org 官方软件源的:稳定版升到 1.30.6,主线版升到 1.31.7 或之后的版本(10 月 21 日又出了 1.31.8,属于常规更新)。升级后先执行
sudo nginx -t检查配置,再重启或平滑重载。 - 用发行版自带 nginx 的:Debian 13 已由 DSA-6575-1 修复(
1.26.3-3+deb13u10);截至 10 月 26 日,Debian 12 在安全追踪页上仍标为未修复,Ubuntu 22.04 / 24.04 在 Ubuntu 的 CVE 页面上大部分还标着待评估(needs-triage)。发行版的版本号老,不代表一定不受影响——5 个里有 2 个从 0.x 时代就存在。补丁出来之前,先检查自己有没有用到上面那几种配置。
顺带一提
同一天 njs 也发布了 1.0.2,修复了 2 个和 XML 有关的漏洞(CVE-2026-101025、CVE-2026-101019),用了 njs 模块的一起升级。如果你的网站是 nginx 加 PHP,PHP 10 月 21 日修复的严重漏洞更急,最好两个一起处理。nginx 的基础配置见用 Nginx 搭建第一个网站,HTTPS 配置见 Let's Encrypt SSL 证书配置教程;升级后网站报 502 / 504,按 502 / 504 排查指南处理。