漏洞概述
Nginx 官方披露了ngx_http_rewrite_module相关的缓冲区溢出漏洞,漏洞编号为 CVE-2026-42945。该模块主要用于处理 URL rewrite 规则,是很多 Web 服务中常见的基础配置之一。
本次漏洞不应被简单理解为“所有 Nginx 实例都可触发”。它主要与特定 rewrite 配置有关,尤其是 rewrite、if、set 组合,以及$1、$2这类未命名 PCRE 捕获在替换路径中的使用。
影响判断
根据 NGINX 官方安全公告,该漏洞影响 NGINX Open Source 0.6.27 至 1.30.0,1.30.1+ 与 1.31.0+ 不受影响。
- 漏洞编号CVE-2026-42945
- 影响模块ngx_http_rewrite_module
- 受影响版本0.6.27 至 1.30.0
- 修复版本1.30.1+ / 1.31.0+
触发条件
公开描述显示,风险配置主要集中在以下情况:
- 配置中存在
rewrite指令; rewrite后续继续进入rewrite、if或set指令;- 使用
$1、$2等未命名 PCRE 捕获; - 替换字符串中包含问号
?,涉及 query string 拼接。
当 Nginx 同时处理正则捕获、URI 重写和 query string 拼接时,如果长度边界计算异常,就可能把超过预期的数据写入堆内存缓冲区,形成 heap buffer overflow。
风险形态示例
以上仅用于说明配置形态,不代表完整利用方式。排查时应关注组合关系,而不是看到单个关键词就直接判定高危。