IPBUF安全漏洞报告
English
CVE-2026-42945 CVSS 8.1 高危

CVE-2026-42945 NGINX重写模块堆缓冲区溢出漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-42945
漏洞类型
堆缓冲区溢出
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
NGINX Plus, NGINX Open Source

相关标签

CVE-2026-42945NGINX堆缓冲区溢出RCE高危漏洞

漏洞概述

NGINX Plus和NGINX Open Source的ngx_http_rewrite_module模块存在高危漏洞。当rewrite指令后接rewrite、if或set指令,且包含无名PCRE捕获(如$1)的替换字符串中带有问号时,可能触发该漏洞。未经身份验证的攻击者可通过发送特制HTTP请求利用此漏洞,导致NGINX工作进程发生堆缓冲区溢出并重启。在禁用ASLR的系统中,攻击者可能进一步执行代码。此漏洞对机密性、完整性和可用性均有严重影响。

技术细节

该漏洞源于NGINX在处理特定配置下的正则表达式替换逻辑时存在的安全缺陷。具体而言,当配置文件中连续使用rewrite指令,或rewrite后接if、set指令时,如果替换字符串中包含问号(?)且引用了无名PCRE捕获变量(如$1, $2),NGINX在处理内存操作时未能正确校验缓冲区边界。攻击者无需认证即可发送特制的恶意HTTP请求触发该逻辑错误。这会导致ngx_http_rewrite_module在处理过程中发生堆缓冲区溢出,进而致使工作进程崩溃重启。虽然默认情况下仅导致拒绝服务,但在未开启地址空间布局随机化(ASLR)的系统环境中,攻击者可利用溢出控制程序执行流,从而实现远程代码执行,完全控制受影响服务器。

攻击链分析

STEP 1
1. 探测
攻击者识别目标服务器运行的是NGINX,并尝试探测是否存在包含特定rewrite规则配置的接口。
STEP 2
2. 构造 payload
攻击者根据漏洞特征,构造包含特定正则匹配模式的HTTP请求,目的是触发rewrite指令后的PCRE捕获逻辑。
STEP 3
3. 触发溢出
向目标发送特制请求,导致NGINX工作进程在处理带问号的替换字符串时发生堆缓冲区溢出。
STEP 4
4. 实现攻击
利用溢出导致服务拒绝(Worker重启),或在ASLR禁用的系统中控制程序流,执行任意代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Vulnerable Nginx Configuration Example server { listen 80; server_name localhost; location / { # Condition 1: Rewrite directive with capture ($1) and question mark (?) rewrite ^(.*)$ /target.php?id=$1; # Condition 2: Followed by a 'set' directive set $new_var $1; # Result: This combination triggers the heap buffer overflow return 200 "OK"; } } # Attack Request (using curl) # curl -I http://localhost/

影响范围

NGINX Plus (受影响版本)
NGINX Open Source (受影响版本)

防御指南

临时缓解措施
建议立即升级至官方修复版本。若无法立即升级,应审查并修改nginx配置文件,避免在rewrite指令后紧跟使用无名捕获组(如$1)且包含问号的替换字符串,同时检查后续是否有if或set指令,以临时规避风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表