潜伏18年高危漏洞爆发!NGINX远程代码执行漏洞CVE-2026-42945全面解析与处置方案

2026年5月13日,安全研究机构depthfirst联合网络安全厂商F5重磅披露NGINX史上高危漏洞——CVE-2026-42945,该漏洞CVSS v4.0评分高达9.2分,属于可被未授权攻击者利用的堆缓冲区溢出漏洞,能实现远程代码执行,而这一漏洞早在2008年就被写入代码库,在全球服务器中潜伏长达18年,波及数亿台服务器,引发全球网络安全行业震动。
该漏洞核心隐患存在于NGINX的ngx_http_rewrite_module重写模块,这是几乎所有NGINX版本的标配核心组件,广泛用于网站URL跳转、流量转发等场景。漏洞根源在于NGINX脚本引擎的执行逻辑缺陷:处理rewrite指令时,引擎分为长度计算、数据拷贝两遍执行流程,当替换字符串中包含问号时,内部标志位is_args会被锁定为1且无法重置,两遍流程内存分配与拷贝规则不一致,最终触发堆缓冲区溢出,攻击者可通过构造特殊HTTP请求,越界篡改服务器内存,实现远程控制服务器、窃取数据、植入恶意程序等高危操作。
此次漏洞受影响范围堪称“全网级”,覆盖NGINX开源版0.6.27至1.30.0全系列版本,商业版NGINX Plus R32至R36版本,同时波及NGINX网关、WAF防护组件、实例管理器等衍生产品。当前全球大量云原生K8s集群Ingress网关、企业API接口、互联网网站均采用NGINX部署,意味着从中小型企业服务器到大型云服务商集群,都面临被入侵的巨大风险。目前安全团队已放出漏洞验证POC代码,漏洞利用门槛大幅降低,网络攻击随时可能大规模爆发。
面对严峻安全形势,NGINX官方已紧急发布安全更新,明确给出修复方案。优先处置方式为版本升级:开源版用户需升级至1.31.0或1.30.1版本,商业版NGINX Plus用户升级至R36 P4或R32 P6版本,升级完成后必须重启NGINX服务,才能让安全补丁正式生效,彻底根除漏洞隐患。
对于暂时无法完成版本升级的企业,官方提供临时规避方案。该漏洞仅在配置文件使用未命名捕获组($1、$2)的rewrite规则中触发,运维人员可将配置内所有未命名捕获组,替换为命名捕获组,即可阻断漏洞触发条件。同时运维人员需立即开展自查工作,核查服务器NGINX版本号,梳理rewrite模块配置规则,排查是否存在漏洞触发风险点,及时清理高危配置。
Demo1:
(1)漏洞会触发的【危险写法】(未命名捕获组)
rewrite ^/article/(\d+)$ /show.php?id=$1 last;
这里的 (\d+) 是未命名捕获组,用 $1 调用,会触发漏洞。
(2)修复后的【安全写法】(命名捕获组)
rewrite ^/article/(?P<id>\d+)$ /show.php?id=${id} last;
这样修改后,漏洞触发条件完全消失,临时防护生效。
Demo2:
(1)危险写法(漏洞触发)
rewrite ^/user/(\w+)/post/(\d+)$ /user.php?name=$1&post=$2 last;
(2)安全写法(修复后)
rewrite ^/user/(?P<name>\w+)/post/(?P<pid>\d+)$ /user.php?name=${name}&post=${pid} last;
核心修改规则:
- 捕获组:
(内容)→ 改成(?P<自定义名称>内容) - 引用:
$1→ 改成${自定义名称}
只要把配置里所有 $1、$2、$3... 都换成命名捕获组,就能临时堵住该漏洞。
危险:rewrite ...(\d+)...$1...
安全:rewrite ...(?P<id>\d+)...${id}...
此次潜伏18年的高危漏洞,再次敲响网络安全警钟。NGINX作为全球使用最广泛的Web服务软件,承载着互联网大量核心业务,此次漏洞暴露了长期未被发现的底层代码缺陷。对于企业运维人员,除了完成本次漏洞修复,还需建立常态化安全机制:定期更新服务器组件版本,避免长期使用老旧高危版本;严格规范NGINX配置编写,减少危险语法使用;部署WAF防护、入侵检测系统,拦截恶意请求;定期开展代码审计、漏洞扫描,及时发现潜在安全隐患。
网络安全无小事,一个潜藏十余年的微小代码漏洞,就能引发全网级安全危机。面对日益复杂的网络攻击环境,只有保持安全警惕、及时响应漏洞、落实防护措施,才能筑牢服务器安全防线,规避网络攻击带来的业务中断、数据泄露、财产损失等严重后果。