CVE-2026-42945NGINX 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)的系统环境中,攻击者可利用溢出控制程序执行流,从而实现远程代码执行,完全控制受影响服务器。