Nginx rewrite 模块爆高危漏洞:可能已经存在十几年|CVE-2026-42945

Nginx 是一款被广泛使用的 HTTP 服务器软件。2026 年 5 月 13 日官方披露常用模组 rewrite 存在安全漏洞。攻击者可通过构造特殊 HTTP 请求触发该漏洞,导致 Nginx 工作进程发生堆缓冲区溢出,进而造成进程崩溃或服务重启。@Appinn

在部分关闭了地址空间布局随机化(ASLR)的系统中,攻击者还有可能进一步执行任意代码。

漏洞代码 CVE-2026-42945 得分 8.1 分,属于较高。

Nginx rewrite 模块爆高危漏洞:可能已经存在十几年|CVE-2026-42945 1

发生了什么?

感谢 @Niceb 同学的提醒。

在 Nginx 的 ngx_http_rewrite_module 模组中,发现了一个存在多年的内存漏洞,攻击者可通过构造特殊 HTTP 请求,在 nginx 处理 rewrite 规则时触发堆缓冲区溢出,导致工作进程崩溃、服务重启。

  • 漏洞位置:ngx_http_rewrite_module
  • 类型:堆缓冲区溢出(heap buffer overflow)
  • 影响:可能导致远程代码执行(RCE)
  • 攻击条件:攻击者不需要登录,可以通过构造 HTTP 请求触发
  • 触发条件:需要 nginx 配置中存在特定 rewrite / set / if 组合,并使用 $1$2 这类 PCRE 捕获变量,同时 replacement 字符串里带 ?
  • 受影响时间跨度:研究人员称漏洞代码可追溯到 2008 年,影响大量历史版本。

在部分安全保护较弱的系统上,甚至可能进一步执行任意代码。由于 WordPress 等大量网站都广泛使用 rewrite 规则,因此这次漏洞影响范围较大。

什么是安全保护较弱的系统?

在这里,关闭了 ASLR(地址空间布局随机化)的系统,就算比较弱鸡的了。可通过下面的命令检测:

cat /proc/sys/kernel/randomize_va_space

返回 2,那么意味着你开启了 ,该漏洞最多会导致 Nginx 崩溃、重启,绝大多数现代操作系统都会是 2

rewrite 规则

你可以通过以下命令查看所有的 rewrite 规则:

grep -RInE 'rewrite|set |\$[0-9]|if \(' /etc/nginx

青小蛙把小众软件的 rewrite 规则发给了 AI,得到了这个内容:

Nginx rewrite 模块爆高危漏洞:可能已经存在十几年|CVE-2026-42945 2

而让 AI 修复该规则,AI 把规则直接改掉了 😭

如何解决

升级 nginx/1.30.1 即可。


原文:https://www.appinn.com/nginx-rewrite-rce-cve-2026-42945/

写留言

Enable Notifications OK No thanks