NGINX 曝 9.2 分高危漏洞:潜伏 18 年,威胁全球约 1/3 服务器

趣百科 新闻资讯 1

5 月 14 日消息,科技媒体 cyberkendra 昨日(5 月 13 日)发布博文,报道称 NGINX 被曝一组高危漏洞,已潜伏约 18 年,威胁全球约三分之一的网络服务器。

援引博文介绍,本次曝光的漏洞如下:

  • CVE-2026-42945 - (9.2 Critical)

  • CVE-2026-42946 - (8.3 High)

  • CVE-2026-40701 - (6.3 Medium)

  • CVE-2026-42934 - (6.3 Medium)

研究人员称,攻击者无需登录认证,只需发送一条特制 HTTP 请求,就能让 NGINX 工作进程崩溃;在合适条件下,还可能拿到服务器远程代码执行权限。

本次漏洞由 depthfirst 在 4 月扫描 NGINX Codebase(代码库)时发现。报告称,其自动化系统在 6 小时内找到 5 个问题,其中 4 个获 NGINX 确认。

最严重的 CVE-2026-42945 可追溯到 2008 年,长期存在于几乎所有标准 NGINX 构建版本中。由于 NGINX 承载全球约三分之一的网站,这次事件影响面尤其大。

问题出在 ngx_http_rewrite_module 的处理逻辑。简单说,某个内部标志位被设为参数转义状态后没有清掉,后续长度计算按原始字节数估算,但真正写入时却再次转义。

研究人员称,这样一来,攻击者 URI 中的“+”“%”“&”等字符会从 1 字节膨胀到 3 字节,原本够用的缓冲区就会溢出。

depthfirst 已做出可运行的概念验证,显示在关闭 ASLR 的条件下可实现未认证 RCE(远程代码执行)。报告还提到一种理论方法,称攻击者可通过重复请求逐步覆盖指针字节,从而尝试绕过 ASLR。

更麻烦的是,NGINX 的多进程架构在这里反而给了攻击者反复试错机会:某个工作进程崩溃后,主进程会拉起新进程,且堆布局可能保持一致。

修复方面,NGINX Open Source 需升级到 1.31.0 或 1.30.1,NGINX Plus 需升级到 R36 P4 或 R32 P6,并重启服务加载修复后的二进制文件。

如果暂时没法升级,官方给出的缓解办法是,把受影响 rewrite 规则中的未命名正则捕获改成命名捕获。原文称,命名捕获不会走到有问题的转义路径,因此能移除当前攻击面。

参考

  • NGINX Rift: Achieving NGINX Remote Code Execution via an 18-Year-Old Vulnerability