
导语:2026年5月13日,安全公司Depthfirst借助其AI工具"Rift"发现了Nginx中存在长达18年的堆缓冲区溢出漏洞(CVE-2026-42945,CVSS 9.2)。该漏洞位于ngx_http_rewrite_module模块,通过特制HTTP请求即可触发,鉴于Nginx占据约三分之一互联网web服务器份额,此次事件影响面极广。
漏洞基本信息
| |
|---|
| |
| |
| 堆缓冲区溢出(Heap Buffer Overflow) |
| |
| |
| |
| |
漏洞原理
该漏洞(Depthfirst命名为"NGINX Rift")存在于ngx_http_rewrite_module模块的字符串处理逻辑中。当Nginx配置同时使用set指令与rewrite指令,且rewrite替换字符串包含?字符时,会触发堆内存越界写入。
核心触发条件:
- rewrite的替换字符串(replacement)中含有
?
攻击者只需向目标发送精心构造的HTTP请求,即可触发溢出,导致:
- Denial of Service(最稳定结果):Worker进程立即崩溃
- Potential RCE(特定环境):精确定位堆布局后可实现任意代码执行
漏洞发现背景
Depthfirst的AI工具"Rift"通过系统性代码分析发现了这一潜伏长达18年的漏洞。Nginx rewrite模块自2008年以来从未进行过此类底层的内存安全审查,AI辅助代码审计在此次发现中发挥了关键作用。
影响范围评估
Nginx是全球部署量最大的web服务器,占有率约三分之一。与2026年多数漏洞不同,该漏洞为无条件可利用(无需用户交互、无需认证),攻击门槛低、自动化 exploitation 可行性高。
排查与缓解
第一步:检查Nginx版本
nginx -v
第二步:排查高风险配置
# 搜索含 set + rewrite 的组合
grep -rn "rewrite\|set" /etc/nginx/ | grep -i "rewrite.*?"
重点关注替换字符串中包含?的rewrite规则。
第三步:立即升级
# Debian/Ubuntu
apt update && apt install nginx
# RHEL/CentOS
yum update nginx
升级目标版本:1.30.1(稳定分支)或 1.31.0(主线分支)及以上。
第四步:临时缓解(升级前)
- 审查并移除或注释
rewrite替换字符串中包含?的规则 - 限制Worker进程的系统权限,降低RCE成功后的横向移动能力
版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。




👇 点击阅读原文,访问我的网站