近日,网络安全行业披露了一组与 NGINX 相关的高危安全漏洞,其中影响最严重的漏洞已隐蔽存在长达18年。由于 NGINX 在全球 Web 服务器市场中的使用率极高,承载了约三分之一的网站流量,这次 NGINX 漏洞事件波及面非常广,迅速引起服务器运维人员、网站管理员以及安全研究人员的高度关注。

本次公开披露的漏洞共有四个,危险等级不尽相同,具体包括:CVE-2026-42945(严重程度9.2分)、CVE-2026-42946(8.3分)、CVE-2026-40701(6.3分)以及CVE-2026-42934(6.3分)。安全研究人员表示,攻击者无需登录或完成身份验证,只需发送一条精心构造的 HTTP 请求,就可能触发 NGINX 工作进程崩溃。在特定环境和条件下,攻击者甚至有机会获取服务器远程代码执行权限,因此该漏洞风险等级极高。
漏洞的发现与影响机制
这组 NGINX 高危漏洞由安全团队depthfirst于今年4月在对 NGINX 代码库进行自动化扫描时发现。其自动化检测系统仅用6小时便定位出5个潜在安全问题,其中4个随后被 NGINX 官方确认存在。最严重的 CVE-2026-42945 漏洞可追溯到2008年,意味着它长期存在于几乎所有标准构建的 NGINX 版本之中。
漏洞产生的核心原因在于ngx_http_rewrite_module模块的处理逻辑存在缺陷。更具体地说,一个内部标志位在被设置为参数转义状态后,没有被正确重置或清除,导致后续长度计算依旧按照原始字节数进行判断,而真正写入数据时却再次执行了转义处理。攻击者如果在 URI 中构造“+”、“%”、“&”等特殊字符,就可能让这些字符从1字节扩展为3字节,最终造成缓冲区溢出问题。
潜在的攻击方式与修复建议
研究人员已经给出了可运行的概念验证,证明在关闭地址空间布局随机化(ASLR)的情况下,攻击者可以实现未经认证的远程代码执行。报告还指出一种理论上的利用思路:攻击者通过持续、重复发送恶意请求,逐步覆盖指针字节,以尝试绕过 ASLR 防护机制。更复杂的是,NGINX 的多进程架构本身也在一定程度上为攻击者提供了反复试验的空间——当某个工作进程崩溃后,主进程通常会自动拉起新的进程,而新的堆内存布局有可能维持不变。
针对这次 NGINX 安全漏洞,NGINX 官方已经发布了相应修复方案。对于开源版本 NGINX Open Source,建议用户尽快升级至1.31.0或1.30.1版本;对于商业版本 NGINX Plus,则需要升级到R36 P4或R32 P6版本。完成升级后,还应及时重启服务,以确保修复后的二进制文件被正确加载。对于暂时无法第一时间升级的用户,官方同时提供了一项临时缓解措施:将受影响重写规则中的未命名正则表达式捕获组改为命名捕获组。由于命名捕获不会进入存在缺陷的转义路径,因此可以在当前阶段有效缩小攻击面并降低服务器风险。
