上一篇 分享链接 返回 返回顶部

潜伏18年的NGINX高危漏洞影响与修复全解

发布人:木空云售后技术 发布时间:14小时前 阅读量:9999+
 

2026 年 5 月 13 日,F5 官方披露 NGINX 存在CVE-2026-42945高危漏洞,CVSS v4.0 评分9.2 分(Critical),源于 ngx_http_rewrite_module 重写模块的堆缓冲区溢出缺陷,该漏洞已潜伏近 18 年,影响 2008 年 0.6.27 版本至 1.30.0 全系列 NGINX,覆盖全球超三分之一 Web 服务器,威胁极大。

一、漏洞核心信息

漏洞编号:CVE-2026-42945

漏洞类型:堆缓冲区溢出(Heap Buffer Overflow)

威胁等级:Critical(9.2 分)

利用条件:无需认证,单条特制 HTTP 请求即可触发

危害:远程代码执行(RCE)、服务器接管、拒绝服务

受影响模块:ngx_http_rewrite_module(生产环境默认启用)

二、影响范围

开源 NGINX:0.6.27 ~ 1.30.0 全版本

NGINX Plus:R36 P3 及以下、R32 P5 及以下

特殊说明:rewrite 规则中使用未命名正则捕获(如 $1、$2)时必受影响,该配置为行业通用写法。

三、漏洞原理简析

漏洞根源是 rewrite 脚本引擎两阶段处理的状态不一致,未命名正则捕获组在转义处理时,未正确校验长度,引发堆缓冲区溢出。攻击者构造恶意请求,可篡改内存、劫持进程,实现无认证 RCE,直接控制服务器。

四、修复与缓解方案

1. 官方修复(推荐)

开源版:升级至1.30.1或1.31.0及以上

  • 商业版:升级至 R36 P4、R32 P6 及以上
  • 升级后重启 NGINX,补丁立即生效。
  • 2. 临时缓解(无法升级时)
  • 将 rewrite 规则中的未命名捕获改为命名捕获,规避漏洞代码路径:
  • # 不安全(未命名捕获)
  • rewrite ^/article/(\d+)$ /show?id=$1 break;
  •  
  • # 安全(命名捕获)
  • rewrite ^/article/(?<id>\d+)$ /show?id=$id break;
  • 3. 加固建议
  • 禁用非必要模块,最小化攻击面
  • WAF 拦截异常 rewrite 匹配请求
  • 定期巡检版本与配置,及时更新补丁
  • 五、安全警示
  • NGINX 作为反向代理、负载均衡核心组件,是互联网基础设施的关键一环。此漏洞潜伏 18 年才被发现,说明基础组件的隐蔽漏洞风险极高。建议运维与开发团队立即自查版本、升级修复,避免服务器被入侵、数据泄露或业务瘫痪。
  • 安全无小事,及时更新、规范配置,才能守住服务器安全防线。
目录结构
全文