潜伏15年!Nginx核心漏洞曝光,无需密码即可远程拿下服务器

admin 2026-07-22 06:12:01 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Nginx曝出潜伏15年的严重漏洞CVE-2026-42533,CVSS评分9.2,影响2011年至今几乎所有版本。漏洞源于脚本引擎中LEN轮与VALUE轮之间共享数组状态未保存,导致堆缓冲区溢出和信息泄露。攻击者无需认证,通过一次GET请求即可绕过ASLR并实现远程代码执行。建议立即升级至最新版本,使用官方配置扫描器审计配置,并重构避免正则捕获与map变量组合。 综合评分: 90 文章分类: 漏洞分析,应急响应,WEB安全,红队,安全工具


cover_image

潜伏15年!Nginx核心漏洞曝光,无需密码即可远程拿下服务器

看雪学苑 看雪学苑

看雪学苑

2026年7月20日 18:05 上海

在小说阅读器读本章

去阅读

这是一个潜伏了15年的漏洞,影响范围覆盖几乎所有Nginx版本,攻击者无需任何认证就能实现远程代码执行。更令人担忧的是,此前修复的其他Nginx漏洞并不能解决这个问题。

01

紧急:Nginx曝出“高龄”漏洞

2026年7月15日,F5官方发布安全公告,一次性修复了Nginx开源版与商业Plus版共计三个高危内存漏洞。其中最引人关注的,是一个编号为CVE-2026-42533的严重漏洞——它已经在Nginx代码中潜伏了整整15年。

该漏洞由安全研究员Stan Shaw(网名cyberstan)报告给F5安全应急响应团队(SIRT),目前已在新版Nginx中得到修复。CVSS v4评分高达9.2分,属于“严重”级别。

⚠️影响范围极广:从Nginx 0.9.6到1.30.3(稳定版)及1.31.2(主线版)的所有版本均受影响。换言之,2011年3月至今几乎所有Nginx版本都存在此漏洞。

02

漏洞是怎么一回事?

这个漏洞的根源,藏在Nginx内部脚本引擎的一个“历史遗留问题”里。

Nginx在处理请求时,会通过两轮评估来构造字符串表达式:

LEN轮(测量轮):先测量结果需要多大缓冲区

VALUE轮(写入轮):再往缓冲区里写入实际数据

这两轮评估都依赖一个名叫 r->captures 的共享数组来存储正则捕获组(比如 $1$2)的内容。问题在于——Nginx没有在两次评估之间保存和恢复这个数组的状态

map指令的正则表达式在两次对捕获组的引用之间被执行时,它会悄悄覆盖掉这个共享状态。结果就是:LEN轮测出来的缓冲区大小,和VALUE轮实际写入的数据大小,对不上了。

03

两种攻击方式:信息泄露 + 堆溢出

这种“大小对不上”的局面,给了攻击者两种完全不同的攻击手段:

堆缓冲区溢出

当被覆盖的捕获组比原始捕获组更大时,VALUE轮写入的数据会超过缓冲区边界,造成堆内存溢出。溢出的长度和内容完全由攻击者通过HTTP请求控制。

信息泄露

反过来,当被覆盖的捕获组比原始捕获组更小时,缓冲区被分配得过大了——响应中会泄露未初始化的堆内存数据,其中就包含libc指针和堆指针。

💡关键点:这两个漏洞组合起来,攻击者只需一次未认证的GET请求就能窃取足以绕过ASLR(地址空间布局随机化)的内存指针。再配合约40个“喷射”连接和一次触发溢出的请求,就能在启用完整ASLR的Ubuntu 24.04上实现100%可靠的远程代码执行。

04

不只是某个指令的问题

这个漏洞的影响面比想象中更广。

根据Cyberstan的技术报告,该漏洞涉及 9个源文件中的至少13个独立调用点,同时影响HTTP模块和Stream模块。

任何将正则表达式捕获源与后续基于正则的map变量相结合的配置,都有可能被利用。

常见受影响指令包括:

⚠️特别注意:捕获引用和map变量不需要在同一条指令中——同一个location块里的不同指令组合,就足以触发漏洞。

05

额外风险:命名捕获组变体

还有一个更棘手的问题:通过命名捕获组((?P<name>...))触发的漏洞变体,由于缓存机制不同,仅修复编号捕获的补丁无法解决。这意味着即使打了补丁,使用命名捕获组的配置可能仍然存在风险。

这件事尤其值得警惕——近期针对其他Nginx漏洞的修复(CVE-2026-42945、CVE-2026-9256、CVE-2026-42055和CVE-2026-48142),并不能解决CVE-2026-42533的问题。

也就是说,即使你之前打了补丁,依然暴露在这个漏洞之下。

F5在官方公告中表示,在ASLR被禁用或可被绕过的情况下,该漏洞可能允许远程代码执行。

但研究员Stan Shaw给出了更严重的判断:

“阅读F5安全公告的人可能会合理地认为,在默认系统上该漏洞仅导致拒绝服务。但事实并非如此。”

Shaw指出,该漏洞本身就提供了绕过ASLR的手段——在默认的Ubuntu 24.04系统上,一次未认证的GET请求就能恢复攻击所需的内存地址。他在自己的测试中达到了10/10的可靠性。

目前,Shaw暂不公开完整的PoC(概念验证)和利用细节,以便给管理员留出打补丁的时间。这一决定参考了此前CVE-2026-42945(“Nginx Rift”)PoC公开后迅速被武器化的教训。

06

立即行动:防御清单

✅第一优先级:升级

✅第二优先级:配置审计

研究员已发布静态配置扫描器(github.com/0xCyberstan/CVE-2026-42533-Config-Scanner)。

该工具可以:

  • 自动识别存在漏洞的指令顺序

  • 区分可利用顺序与安全顺序

  • 支持JSON格式输出

  • **不会对运行中的服务器造成任何影响**

建议立即对生产环境配置运行扫描。

✅第三优先级:配置重构

审计所有location块,检查是否存在正则表达式捕获与基于正则的map变量的组合使用。如有发现,考虑重构配置以避免这种组合。

资讯来源:

  • F5官方安全公告(K000162097)
  • The Hacker News
  • Stan Shaw(cyberstan)技术分析报告:cyberstan.co.uk/nginx-rce

球分享

球点赞

球在看


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:看雪学苑 看雪学苑 看雪学苑《潜伏15年!Nginx核心漏洞曝光,无需密码即可远程拿下服务器》

评论:0   参与:  0