Security Advisory · MirrorX Lab

Nginx rewrite 模块缓冲区溢出漏洞研究与应急引导

CVE-2026-42945 的影响范围、触发条件、排查方法与修复建议。

广州翊柯信息技术有限公司2026-06-04
抽象的数据流与模块边界示意图
“这类漏洞的重点不在于是否使用 Nginx,而在于是否存在特定 rewrite 配置组合。企业排查应同时确认版本范围、规则形态和修复后的验证结果。” — 我们的研究

漏洞概述

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。

风险形态示例

rewrite ^/old/(.*)$ /new/$1? last; set $target $1;

以上仅用于说明配置形态,不代表完整利用方式。排查时应关注组合关系,而不是看到单个关键词就直接判定高危。

抽象的检测、分流、修复与验证流程示意图

配置排查

建议先确认 Nginx 版本与编译参数:

nginx -v nginx -V

再验证当前配置是否可正常读取:

nginx -t

导出完整配置并扫描 rewrite 相关规则:

nginx -T 2>/dev/null | grep -nE 'rewrite|if|set|\$[0-9]|\?'

更精确的风险扫描可以使用:

nginx -T 2>/dev/null | grep -nE 'rewrite.*\$[0-9]|rewrite.*\?|set.*\$[0-9]|if.*\$[0-9]'

临时缓解

如果短时间内无法立即升级,可先收敛复杂 rewrite 规则,避免继续使用$1、$2等未命名捕获参与带问号的替换路径,并对异常 URI、重复编码和高频探测请求进行监控与拦截。

临时缓解不能替代版本修复,只适合作为正式升级前的风险控制。

修复验证

建议升级至官方修复版本。升级前应备份配置,升级后必须执行nginx -t验证,确认配置正常后再 reload 服务。

升级前备份

BACKUP_DIR="/root/nginx-backup-$(date +%Y%m%d-%H%M%S)" mkdir -p "$BACKUP_DIR" cp -a /etc/nginx "$BACKUP_DIR/" nginx -T > "$BACKUP_DIR/nginx-full-config.txt" 2>&1 nginx -v > "$BACKUP_DIR/nginx-version-before.txt" 2>&1

Debian / Ubuntu

apt update apt install --only-upgrade nginx -y

RHEL / CentOS / Rocky / AlmaLinux

dnf makecache dnf update nginx -y

升级后验证

nginx -v nginx -t systemctl reload nginx

MirrorX Lab 服务支持

翊柯信息技术旗下 MirrorX Lab 提供网络安全排查、漏洞应急分析与修复引导服务。

网络安全 / 排查服务:hi@mirrorx.ltd

公司联系方式:hi@neko.kim

参考来源

  1. NGINX 官方安全公告
  2. NGINX 官方发布新闻
  3. NVD:CVE-2026-42945 Detail
  4. F5:NGINX ngx_http_rewrite_module vulnerability CVE-2026-42945