Nginx曝18年未发现的严重漏洞:CVE-2026-42945可导致远程代码执行
Nginx曝出潜伏18年的高危漏洞,影响全球近三分之一网站。该漏洞(CVE-2026-42945)存在于URL重写模块,可导致服务器崩溃甚至远程代码执行,CVSS评分高达9.2。AI安全公司DepthFirstAI通过大语言模型分析发现了这一漏洞,同时揭露了传统安全审计的不足。漏洞影响Nginx 0.6.27至1.30.0版本,相关商业产品同样受波及。运维人员需立即检查配置并升级至修复版本(1.3

全球最流行的Web服务器之一Nginx,近期被曝出一个潜伏长达18年的高危安全漏洞。这个编号为CVE-2026-42945的缺陷隐藏在URL重写模块深处,一旦被成功利用,攻击者不仅能让服务器直接崩溃,甚至可能在特定环境下执行任意代码。对于支撑全球近三分之一网站的这款开源软件来说,这次发现无疑给整个互联网基础设施的安全防护敲响了警钟。
一场由AI驱动的漏洞挖掘

发现这个漏洞的是安全初创公司DepthFirst AI。他们的研究团队借助基于大语言模型的自动化分析平台,在Nginx代码库中一次性揪出了四个安全缺陷。这件事本身也折射出一个令人不安的现实:传统安全扫描工具和人工代码审计,正在高知名度的开源项目中频繁漏掉关键漏洞,而AI辅助的代码分析正在逐步填补这一空白。
Nginx的地位无需多言。除了直接为海量网站提供HTTP服务,它还深度嵌入各类商业产品架构,扮演着反向代理、负载均衡器和缓存层的核心角色。F5 Networks收购Nginx后推出的商业版本Nginx Plus,同样在这次漏洞波及范围内。
漏洞藏在URL重写规则里

CVE-2026-42945本质上是一个堆缓冲区溢出漏洞,位于Nginx的ngx_http_rewrite_module组件中。该组件负责处理URL重写逻辑,影响范围从0.6.27版本一直延续到1.30.0版本,CVSS评分高达9.2,属于严重级别。
F5在安全公告中给出了具体的触发条件:当rewrite指令后面紧跟着rewrite、if或set指令,并且使用了未命名的PCRE正则捕获组(比如$1、$2),同时替换字符串中包含问号字符(?)时,漏洞就会被触发。这种情况下,服务器进程会因为内存损坏而崩溃,形成拒绝服务攻击;如果目标系统禁用了地址空间布局随机化(ASLR),攻击者还能进一步实现远程代码执行。
从DoS到RCE,距离并不遥远

DepthFirst团队已经向F5提交了概念验证(PoC)代码,虽然当前公开的利用程序尚未包含ASLR绕过机制,但研究人员认为这在技术上是完全可行的。
DepthFirst研究员林振鹏在一篇技术博客中解释了背后的原理:Nginx采用多进程架构,所有工作进程都由同一个主进程派生。这意味着每个子进程的内存空间在初始状态下是完全一致的,堆布局具有高度确定性。即使某次攻击尝试导致工作进程崩溃,主进程也会立即拉起一个新的工作进程,而内存布局保持不变。攻击者可以反复尝试,通过逐字节覆盖指针的方式逐步泄露内存地址,最终绕过ASLR保护。
更令人担忧的是,触发漏洞所需的Nginx配置在实际生产环境中相当常见。API网关场景下,开发团队经常需要把旧端点迁移到新位置,同时用URL重写规则保证外部客户端不受影响。set指令则常被用来保存原始路径或部分内容,用于动态路由、状态维护,或者传递给后端应用做审计日志。这两类指令的组合,恰恰是API网关配置里的标准写法。
影响面远超开源版本

Nginx开源版已在1.31.0和1.30.1中完成修复。商业产品Nginx Plus的补丁则随R36 P4、R32 P6和37.0.0版本发布。
但问题并未到此结束。F5旗下还有一系列基于Nginx构建的产品尚未获得更新,包括Nginx Instance Manager、F5 WAF for Nginx、Nginx App Protect WAF、F5 DoS for Nginx、Nginx App Protect DoS、Nginx Gateway Fabric以及Nginx Ingress Controller。使用这些产品的企业需要密切关注厂商后续的安全通告。
另外三个"漏网之鱼"
除了CVE-2026-42945,DepthFirst此次披露的还有三个已修复漏洞,同样值得运维人员关注:
CVE-2026-42946被评为高危(CVSS 8.3),可导致拒绝服务或内存泄漏;CVE-2026-42934和CVE-2026-40701均为中危(CVSS 6.3),分别涉及拒绝服务、内存泄漏和数据篡改风险。虽然这三个漏洞的严重程度不及主漏洞,但在复杂的微服务架构中,任何可被利用的入口都可能成为攻击链的一环。
现在该做什么
鉴于PoC代码已经公开,且Nginx漏洞在历史上曾多次被真实攻击者利用,升级补丁这件事容不得拖延。即使不考虑远程代码执行的可能性,单纯的拒绝服务攻击对线上业务也是致命威胁。
运维团队应尽快完成以下动作:首先确认当前运行的Nginx版本是否在受影响范围内;其次检查配置文件中是否存在rewrite与set指令连用、且替换字符串带问号的情况;最后制定升级计划,优先处理面向公网的边缘节点。对于暂时无法升级的环境,建议通过WAF规则或访问控制策略,对可疑请求进行前置过滤。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)