【高危漏洞通告】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 小时内完成版本升级或配置修复,避免服务宕机或服务器被控风险。

相关推荐
IT大白鼠6 小时前
Ingress 与 Ingress-Controller:K8s 七层 HTTP 反向代理技术详解与实践
http·容器·kubernetes
徐小黑ACG7 小时前
nginx配置文件
linux·服务器·nginx
新时代牛马7 小时前
Linux VFS 完整篇:从path_openat、dentry/inode 到page cache 与挂载排障
linux·运维·服务器
cloudfantasy8 小时前
docker直接二进制安装,非编译。KylinV10SP3 aarch64有效
运维·docker
新时代牛马9 小时前
Linux 驱动中断与定时完整篇:从 request_threaded_irq 到hrtimer 选型与排障
linux·运维·服务器
考虑考虑9 小时前
nginx打印请求日志
运维·后端·nginx
数字补给站10 小时前
Windows 10 + Hyper-V + Terraform + cloud-init:批量产出 3 台 Ubuntu 的实践笔记
运维·ai编程
myy-learn12 小时前
30-HTTP协议
网络·网络协议·http
海鸥8114 小时前
AIOps(智能运维)理解
运维·人工智能
码农小韩15 小时前
Linux应用开发(一)——Linux的标准IO
linux·运维·服务器