AI 自主挖出 NGINX 潜伏 18 年的高危 RCE 漏洞,全球三分之一网站受影响
2026 年 5 月 13 日,AI 安全分析系统 depthfirst 发现 NGINX 中一个潜伏 18 年的堆缓冲区溢出漏洞(CVE-2026-42945,CVSS 9.2),影响版本 0.6.27 至 1.30.0。漏洞存在于 rewrite 模块,可导致远程代码执行。NGINX 已于当日发布补丁,PoC 代码已公开。这一发现标志着 AI 驱动的漏洞挖掘进入新阶段。
事件概述
2026 年 5 月 13 日,初创公司 depthfirst 开发的 AI 安全分析系统在一次“点击即分析”操作中,自主发现了 NGINX 中潜伏 18 年之久的远程代码执行(RCE)漏洞 CVE-2026-42945。该漏洞存在于 NGINX 的 rewrite 模块中,自 2008 年引入以来未被发现,影响版本 0.6.27 至 1.30.0。NGINX 在全球 Web 服务器市场占比约 30%,数以亿计的网站面临风险。
漏洞细节
CVE-2026-42945 被评定为严重级别(CVSS 9.2),是一个堆缓冲区溢出漏洞。根因在于 NGINX 脚本引擎的两阶段处理缺陷:当 rewrite 指令的替换字符串包含问号(?)时,会永久设置 is_args 标志,而后续 set 指令在长度计算阶段使用全新的子引擎,该标志未被正确传递,导致内存分配长度小于实际写入长度,造成堆溢出。攻击者可通过构造特定 HTTP 请求触发,在特定条件下实现远程代码执行。
漏洞利用要点
- 溢出数据需经过 URI 解析和转义处理,无法直接注入任意字节,但攻击者可通过“跨请求堆风水”技术控制堆布局。
- 利用步骤:建立初始连接发送部分 HTTP 头 → 建立第二个“受害者”连接使其内存池相邻 → 完成请求头触发 rewrite 溢出覆盖受害者内存池头部 → 关闭受害者连接触发
ngx_destroy_pool,可覆盖cleanup指针执行任意代码(如调用system())。 - 触发条件:服务器配置必须同时使用 rewrite(替换字符串含
?)和 set 指令,常见于 API 网关配置。
相关漏洞
depthfirst 在 6 小时扫描中发现 5 个安全问题,其中 4 个被 NGINX 官方确认:
- CVE-2026-42946(高危,CVSS 8.3):
ngx_http_scgi_module和ngx_http_uwsgi_module中的内存分配问题,可导致约 1TB 异常内存分配。 - CVE-2026-40701(中危,CVSS 6.3):
ngx_http_ssl_module中的释放后使用问题。 - CVE-2026-42934(中危,CVSS 6.3):
ngx_http_charset_module中的越界读取问题。
修复与应对
NGINX 官方于 2026 年 5 月 13 日发布补丁:开源版 1.31.0 和 1.30.1,商业版 NGINX Plus R36 P4、R35 P2、R32 P6。depthfirst 已公开 PoC 代码(GitHub:DepthFirstDisclosures/Nginx-Rift)及详细技术分析报告。建议用户立即升级,审查配置中是否使用了受影响的 rewrite 和 set 指令组合,并监控异常 HTTP 请求。
行业意义
CVE-2026-42945 的发现是 AI 驱动漏洞挖掘的重要里程碑。depthfirst 的系统能理解代码业务逻辑和数据流,发现被传统工具和人类审计遗漏的漏洞,且成本仅为传统方法的十分之一。该事件也引发对 AI 安全研究伦理的讨论——depthfirst 遵循负责任披露流程,先向官方报告并等补丁发布后才公开细节。这为 AI 安全研究树立了标杆,同时提醒开源基础设施需持续关注隐藏缺陷。
