NGINX 曝 9.2 分高危漏洞:潜伏 18 年,威胁全球约 1/3 服务器
IT之家5月14日消息,科技媒体cyberkendra昨日(5月13日)发布博文,报道称NGINX被曝一组高危漏洞,已潜伏约18年,威胁全球约三分之一的网络服务器。
IT之家援引博文介绍,本次曝光的漏洞如下:
CVE-2026-42945-(9.2Critical)
CVE-2026-42946-(8.3High)
CVE-2026-40701-(6.3Medium)
CVE-2026-42934-(6.3Medium)
研究人员称,攻击者无需登录认证,只需发送一条特制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需升级到R36P4或R32P6,并重启服务加载修复后的二进制文件。
如果暂时没法升级,官方给出的缓解办法是,把受影响rewrite规则中的未命名正则捕获改成命名捕获。原文称,命名捕获不会走到有问题的转义路径,因此能移除当前攻击面。
参考
NGINX Rift:Achieving NGINX Remote Code Execution via an18-Year-Old Vulnerability
所有文章未经授权禁止转载、摘编、复制或建立镜像,违规转载法律必究。
举报邮箱:1002263188@qq.com