点击蓝字关注我们
近期,我们监控到NGINX远程代码执行漏洞 CVE-2026-42945,该漏洞存在于NGINX ngx_http_rewrite_module 模块中,在特定配置条件下,未认证攻击者可能通过构造HTTP请求触发NGINX worker进程堆缓冲区溢出,导致worker进程异常重启,在特定编译条件和运行环境下,风险可能进一步扩大为远程代码执行。
根据目前公开信息分析,该漏洞并不是“只要使用NGINX就会触发”,而是依赖特定rewrite配置组合。
典型风险场景包括:
在同一配置上下文中,某条rewrite指令使用了正则捕获,并且替换字符串中包含 ?;
随后又有rewrite、if或set指令继续引用 $1、$2等未命名捕获变量。
这类组合可能造成NGINX脚本引擎在长度计算和实际拷贝阶段出现状态不 一致,从而引发堆缓冲区溢出。
网瑞达反代/VPN产品在业务访问链路中大量使用 NGINX作为统一入口能力,包括HTTPS证书接入、反向代理、访问控制、身份认证、单点登录、资源路径转发、负载均衡、Web安全防护、静态资源代理、错误页处理等功能。由于这些能力都依赖自动生成的 NGINX 配置,因此在漏洞披露后,我们第一时间对产品内置生成的反代/VPN NGINX 配置进行了专项排查。
经确认,网瑞达反代/VPN产品默认生成的 NGINX 配置不使用可触发CVE-2026-42945 的高风险rewrite组合。产品内置配置主要围绕反向代理转发、认证鉴权、安全策略、Header控制、上游服务代理、错误页处理等场景生成,默认配置中未发现“带?的rewrite后续继续引用 $1、$2”这一类漏洞触发条件。因此,在未手动修改高级自定义配置的情况下,产品默认生成配置不满足该漏洞利用条件。
同时,我们也对反代/VPN常见业务场景进行了复核。例如:统一门户访问、Web资源发布、HTTPS卸载、后端应用代理、资源路径映射、认证跳转、静态文件代理、默认错误页、策略拦 截页等自动生成配置,均未命中该漏洞的高风险模式。用户通过产品界面正常创建资源、配置证书、开启访问控制、启用负载均衡或安全防护,不会自动生成该风险配置组合。
需要特别提醒的是,如果用户曾手动编辑过网站高级自定义配置,或者在自定义server、location、rewrite规则中加入过复杂NGINX指令,则需要自行进行排查。尤其是以下场景建议重点关注:
手动添加过rewrite指令,并且rewrite目标中包含?;
后续又使用 set、 if、rewrite引用了 $1、$2 等未命名捕获变量;
自定义配置被放入公网可访问的Web资源入口;
对于存在自定义配置的用户,我们建议尽快执行以下操作:
优先升级 NGINX 到官方或发行版提供的修复版本;
检查所有公网暴露入口的 NGINX 配置。避免在带query string 的rewrite后继续使用$1、$2这类未命名捕获变量;必要时改用命名捕获、提前保存变量、拆分rewrite逻辑,或移除不必要的 query string rewrite。
不止网瑞达产品
多场景 NGINX 风险自检脚本开源上线
为帮助用户快速定位风险,我们同步开发并开源了 CVE-2026-42945 配置自检脚本。该脚本不只适用于网瑞达反代/VPN产品,也可以用于检查用户自有 NGINX、业务网关、反向代理服务器、负载均衡节点等环境中的NGINX配置风险。
脚本会检查当前NGINX版本,并扫描配置中是否存在疑似高风险rewrite序列。
如果当前版本处于受影响范围,且配置命中风险模式,应尽快升级NGINX或调整相关配置;
如果版本处于受影响范围但未发现风险序列,也建议按照官方公告完成版本修复;
如果发现疑似风险配置但版本不在受影响范围,也建议对配置进行人工复核,降低后续维护风险。
自检脚本地址
https://github.com/friparia/NGINX_RIFT_SCAN_CVE_2026_42945
https://cnb.cool/bh1xaq/NGINX_RIFT_SCAN_CVE_2026_42945
(国内镜像)
网瑞达将持续跟踪该漏洞的官方修复信息、利用条件变化及实际攻击风险。如后续发现新的影响场景或需要用户采取进一步措施,我们会及时发布更新说明。
往期精选
网瑞达总经理赴清华开讲:“网络交警”解码二十年网络管理
高校运维故事:用户抱怨网络不好,怎么办?
点击阅读原文获取联系方式