漏洞概述

漏洞名称

NGINX ngx_http_rewrite_module 堆缓冲区溢出漏洞

漏洞编号

QVD-2026-28076,CVE-2026-9256

公开时间

2026-05-22

影响量级

万级

奇安信评级

高危

CVSS 3.1分数

8.1

威胁类型

代码执行、拒绝服务

利用可能性

POC状态

已公开

在野利用状态

未发现

EXP状态

未公开

技术细节状态

已公开

危害描述:未经身份认证的攻击者可通过发送构造的 HTTP 请求触发漏洞,造成 Worker 进程崩溃,在 ASLR 被禁用或被绕过的情况下,攻击者可能进一步实现任意代码执行。

0漏洞详情

影响组件

NGINX 是一款高性能、轻量级的开源 Web 服务器与反向代理服务,广泛用于静态资源托管、负载均衡、API 网关、缓存加速等场景,支持 HTTP/HTTPS、WebDAV、HTTP/3 等多种协议,具备高并发、低资源占用、模块化扩展等特性,是全球互联网主流的服务端基础软件,被政企、云厂商、互联网企业大量部署。ngx_http_rewrite_module 是 NGINX 的核心内置模块,用于基于 PCRE 正则表达式动态修改请求 URI、实现 URL 重写/重定向、条件路由及变量操作。

漏洞描述

近日,奇安信CERT监测到官方修复NGINX ngx_http_rewrite_module 堆缓冲区溢出漏洞(CVE-2026-9256),该漏洞源于 rewrite 指令使用含重叠捕获组的 PCRE 正则表达式,且替换字符串在重定向或参数上下文引用多个重叠捕获组时,模块未正确计算输出缓冲区大小,导致内存拷贝越界。未经身份认证的攻击者可通过发送构造的 HTTP 请求触发漏洞,造成 Worker 进程崩溃,在 ASLR 被禁用或被绕过的情况下,攻击者可能进一步实现任意代码执行。目前该漏洞PoC和技术细节已公开。鉴于该漏洞影响范围较大,建议客户尽快做好自查及防护。

利用条件

在 Nginx 的配置中,必须存在一个 rewrite 指令,并且该指令同时满足:

1.正则表达式含重叠捕获组(如 ^/((.*))$);

2.替换字符串在重定向(redirect)或参数(arguments)上下文中引用多个重叠捕获组(如$1$2)。

02 影响范围

影响版本

0.1.17 <= NGINX Open Source <= 0.9.7

1.0.0 <= NGINX Open Source <= 1.30.1

NGINX Open Source 1.31.0

NGINX Plus 37.0.0

R32 <= NGINX Plus < R32 P7

R36 <= NGINX Plus < R36 P5

其他受影响组件

2.17.0 <= NGINX Instance Manager <= 2.22.0

5.9.0 <= F5 WAF for NGINX <= 5.13.0

4.10.0 <= NGINX App Protect WAF <= 4.16.0

5.2.0 <= NGINX App Protect WAF <= 5.8.0

F5 DoS for NGINX 4.9.0

4.3.0 <= NGINX App Protect DoS <= 4.7.0

1.3.0 <= NGINX Gateway Fabric <= 1.6.2

2.0.0 <= NGINX Gateway Fabric <= 2.6.1

3.5.0 <= NGINX Ingress Controller <= 3.7.2

4.0.0 <= NGINX Ingress Controller <= 4.0.1

5.0.0 <= NGINX Ingress Controller <= 5.4.2

03 复现情况

目前,奇安信威胁情报中心安全研究员已成功复现NGINX ngx_http_rewrite_module 堆缓冲区溢出漏洞(CVE-2026-9256),截图如下:

04 处置建议

安全更新

官方已发布安全补丁,请及时更新至最新版本:

NGINX Open Source 1.* >= 1.31.1

NGINX Open Source 1.* >= 1.30.2

NGINX Plus 37.* >= 37.0.1.1

NGINX Plus R32 >= R32 P7

NGINX Plus R36 >= R36 P5

其他衍生组件(Instance Manager、WAF、Ingress Controller 等):升级至已修复版本,或迁移到含修复的基础 NGINX 版本。

下载地址:

https://my.f5.com/manage/s/article/K000161377

缓解措施:

将所有受影响 rewrite 指令中未命名捕获组($1、$2)替换为命名捕获组。

易受攻击示例:

    rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;

    修复后示例:

      rewrite ^/users/(?[0-9]+)/profile/(?
      .*)$ /profile.php?id=$user_id&tab=$section last;

      05 参考资料

      [1]https://my.f5.com/manage/s/article/K000161377

      [2]http://www.openwall.com/lists/oss-security/2026/05/22/14

      声明:本文来自奇安信 CERT,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。