【高危漏洞通告】NGINX ngx_http_rewrite_module 堆缓冲区溢出漏洞;详解与修复方案

2026 年 5 月 22 日,NGINX 官方修复ngx_http_rewrite_module 模块堆缓冲区溢出漏洞(CVE-2026-9256) ,奇安信 CERT 已完成漏洞复现,漏洞 POC 与技术细节已公开,影响万级线上服务。该漏洞可导致服务拒绝服务,特定条件下可实现未授权任意代码执行,运维与安全人员需立即自查修复。


一、漏洞核心信息

表格

项目 详情
漏洞名称 NGINX ngx_http_rewrite_module 堆缓冲区溢出漏洞
漏洞编号 CVE-2026-9256、QVD-2026-28076
公开时间 2026-05-22
威胁等级 高危(CVSS 3.1 评分:8.1)
威胁类型 远程代码执行、拒绝服务(DoS)
利用条件 无需身份认证、利用可能性高
POC/EXP 状态 POC 已公开、EXP 未公开
在野利用 未发现

二、漏洞原理与安全危害

1. 漏洞原理

漏洞出现在 NGINX 核心内置模块ngx_http_rewrite_module (负责 URL 重写 / 重定向、正则路由)。 当配置中rewrite指令同时满足:

  • 正则表达式包含重叠捕获组 (如^/((.*))$
  • 替换字符串在重定向 / 参数上下文引用多个重叠捕获组 (如$1$2) 模块会错误计算输出缓冲区大小 ,引发内存拷贝越界,触发堆缓冲区溢出

2. 安全危害

  • 未认证攻击者发送构造 HTTP 请求,直接导致Worker 进程崩溃,服务不可用;
  • 若服务器ASLR 被禁用或绕过 ,攻击者可进一步利用漏洞实现远程任意代码执行,控制服务器。

三、漏洞利用必备条件

漏洞并非全版本默认触发,需同时满足以下 2 条配置规则:

  1. rewrite 指令的正则表达式含重叠捕获组 (示例:^/((.*))$);
  2. 替换字符串在重定向(redirect)或参数(arguments) 上下文,引用多个重叠捕获组(示例:$1$2)。

四、受影响版本范围

1. NGINX 开源版(Open Source)

  • 0.1.17 ≤ 版本 ≤ 0.9.7
  • 1.0.0 ≤ 版本 ≤ 1.30.1
  • 1.31.0

2. NGINX 商业版(Plus)

  • 37.0.0
  • R32 ≤ 版本 < R32 P7
  • R36 ≤ 版本 < R36 P5

3. 衍生组件

NGINX Instance Manager、F5 WAF for NGINX、NGINX App Protect、NGINX Gateway Fabric、NGINX Ingress Controller 等对应版本均受影响,详见官方通告。


五、漏洞复现情况

奇安信威胁情报中心已成功复现该漏洞,验证构造请求可稳定触发 Worker 进程崩溃,漏洞可利用性得到确认。


六、修复与缓解方案

1. 官方安全更新(推荐,彻底修复)

直接升级至官方已修复版本:

  • NGINX Open Source:≥ 1.30.2 或 ≥ 1.31.1
  • NGINX Plus:37.* ≥ 37.0.1.1;R32 ≥ R32 P7;R36 ≥ R36 P5
  • 衍生组件:升级至修复版,或迁移至已修复的 NGINX 基础版本 官方下载:https://my.f5.com/manage/s/article/K000161377

2. 临时缓解方案(无法立即升级时)

将配置中未命名捕获组(1、2) 替换为命名捕获组,规避重叠捕获组触发漏洞。

易受攻击配置示例

nginx

复制代码
rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
修复后配置示例

nginx

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

七、自查与加固建议

  1. 版本排查:登录服务器执行nginx -v,核对是否在受影响范围;
  2. 配置扫描:全局检索nginx.conf及子配置文件,定位含重叠捕获组的 rewrite 指令;
  3. 优先升级:生产环境优先执行官方版本升级,从根源修复;
  4. 临时防护:无法升级时,按上述方法替换为命名捕获组,重启 NGINX 生效。

总结

CVE-2026-9256 是 NGINX rewrite 模块的高危堆溢出漏洞,POC 公开、利用门槛低,虽暂无在野利用,但需紧急处置。建议运维团队 24 小时内完成版本升级或配置修复,避免服务宕机或服务器被控风险。

相关推荐
一池秋_11 小时前
ubuntu(linux)完美复刻windows11字体,解决linux字体费眼晴
linux·运维·ubuntu
川石课堂软件测试12 小时前
性能测试|Nginx中间件监控与调优
linux·python·nginx·中间件·单元测试·压力测试·harmonyos
清晨曦月12 小时前
【从零构建分布式在线评测系统】二、Judge0服务器上的心跳程序
运维·服务器·分布式
Starry-sky(jing)13 小时前
Win11 装 ESP32 Arduino 库卡 3 小时?我把官方 3.3.10 全平台 522MB 搬到了蓝奏云,解压即用
运维·windows·esp32·arduino·离线安装
小此方14 小时前
Re:Linux系统篇(四十二)通信篇·七:SystemV标准三部曲其之三:信号量与并发编程初步认识
linux·运维·驱动开发
画中有画20 小时前
使用yolov8实现自动化脚本
运维·yolo·自动化
m0_7408596221 小时前
Nginx进行配置文件拆分(以windows解压版为例)
nginx
Piko6141 天前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
开发小程序的之朴1 天前
认识安企CMS-安装安企CMS的环境要求
nginx·golang·系统架构
万联WANFLOW1 天前
SD-WAN 控制平面高可用怎么做?SDWAN 控制器挂了,全网会发生什么
运维·网络·分布式·架构