Nginx 2026 年安全更新排查笔记:三个 CVE 的触发条件与缓解
Nginx 在 2026 年中期发布了一批安全更新,涉及三个触发条件各不相同的漏洞,下面逐条列出配置触发点和缓解手段,方便对照自己的 conf 检查。
需要注意的是,这三条 CVE 与早前 rewrite/map 未命名 PCRE 捕获那批(CVE-2026-42533 / 42945 / 9256)是不同的两批问题,不要混淆。
CVE-2026-42530:HTTP/3 QUIC Use-After-Free
- 严重级别:major
- 触发模块:
ngx_http_v3_module - 影响版本:1.31.0 - 1.31.1
- 修复版本:1.31.2+
使用 HTTP/3 模块时,攻击者可构造 HTTP/3 会话并重开 QPACK encoder stream,从而触发 worker 进程的 Use-After-Free,导致 worker 崩溃重启。若 ASLR 被关闭或可被绕过,还存在代码执行风险。
缓解手段:将 listen 指令中的 quic 参数移除,即关闭 HTTP/3。
CVE-2026-42055:HTTP/2 大 Header 堆溢出
- 严重级别:Critical / 9.2
- 影响版本:1.13.10 - 1.31.1
- 修复版本:1.31.2+ / 1.30.3+
该漏洞需要同时满足以下三个条件:
- 使用
proxy_http_version 2或grpc_pass将请求代理到 HTTP/2 上游 ignore_invalid_headers设置为offlarge_client_header_buffers尺寸大于 2MB
满足上述组合条件后,攻击者可发送超大 header 构造上游请求,造成 worker 堆溢出并崩溃重启;ASLR 关闭时可升级为代码执行。
缓解手段:在代理 HTTP/2 上游的场景中,不要把 large_client_header_buffers 配置得过大。需要特别注意的是,这几个开关是组合条件,单独调整其中一项并不能完全规避风险。
CVE-2026-8711:ngx_http_js_module(njs)js_fetch_proxy 堆溢出
- 触发模块:
ngx_http_js_module(njs) - 影响版本:njs 0.9.4 - 0.9.8
- 修复版本:njs 0.9.9
触发该漏洞需要满足以下条件:
js_fetch_proxy配置中使用了至少一个客户端可控的 Nginx 变量(如$http_*、$arg_*、$cookie_*)- 对应 location 中调用了
ngx.fetch()
缓解手段:不要把客户端可控变量拼入 fetch 代理配置。
完整公告见官方安全公告页:
逐条对照自己的 conf,按实际受影响程度决定处理优先级。