HackerNews

HackerNews
严重的 NGINX 漏洞可导致 Worker 崩溃,并可能允许远程代码执行

严重的 NGINX 漏洞可导致 Worker 崩溃,并可能允许远程代码执行

给文章评分:

F5 已发布针对一个严重 nginx 漏洞的修复程序,该漏洞允许远程未认证攻击者通过精心构造的 HTTP 请求在 worker 进程中触发堆缓冲区溢出。CVE-2026-42533 已于 7 月 15 日在 nginx 1.30.4(稳定版)和 1.31.3(主线版)以及 NGINX Plus 37.0.3.1 中得到修复;任何使用更早版本的用户都应进行升级。
触发该漏洞可能导致 worker 崩溃或重启,造成拒绝服务;F5 表示,在 ASLR 被禁用或可被绕过的情况下,该漏洞也可能允许远程代码执行。
该溢出存在于 nginx 的脚本引擎中,即负责在请求时从指令组装字符串的代码。它仅在特定配置下出现:一个基于正则表达式的 map,其输出变量在字符串表达式中被引用,且该引用位于之前正则表达式匹配的捕获之后。
在这种模式下,引擎的两遍评估出现了问题。第一遍测量结果需要多少字节并分配一个合适的缓冲区;第二遍将字节写入。两遍过程读取相同的共享捕获状态,而在这两遍之间对 map 正则表达式的评估会覆盖该状态。
因此,测量遍为原始捕获(例如来自 location 匹配的 1引用)分配了缓冲区大小,而写入遍则从一个不同的、由攻击者控制大小的捕获中填充数据。缓冲区太小,溢出的长度和内容都直接来自请求。该漏洞并非影响所有nginx服务器;受影响程度取决于配置,而不仅仅是版本。F5的安全公告将该漏洞列为影响NGINXIngressController、GatewayFabric、AppProtectWAF和InstanceManager,以及核心服务器和NGINXPlus,不过截至发稿时,F5尚未列出这四个产品的修复版本。F5在CVSSv4下评分为9.2,在较旧的v3.1标准下评分为8.1,并认为攻击复杂度较高。从0.9.6到1.31.2的所有nginx版本均受影响,这一范围可追溯到2011年,即map获得正则表达式支持之时。

Shaw 自己的扫描器可以自动跨配置进行检查,跟踪 include 文件,并仅标记可利用的顺序;它不会利用任何漏洞,但作为报告者的工具,它并非供应商产品。
这是大约两个月内披露的 nginx 表达式求值代码中的第三个堆溢出漏洞,继 5 月的 Rift(CVE-2026-42945)和几天后 rewrite 模块中的重叠捕获漏洞(CVE-2026-9256)之后。
这三个漏洞属于同一类缺陷:nginx 的两遍脚本引擎在一遍中测量缓冲区大小,在下一遍中写入,而每次写入都超过了其测量的大小。触发条件各不相同:Rift 中的过期标志、rewrite 漏洞中的重叠捕获、以及此处被覆盖的捕获状态。正如研究人员所指出的,共同的弱点是这种信任自身测量的两遍设计。
截至 7 月 20 日,CVE-2026-42533 尚未出现在 CISA 的已知被利用漏洞目录中,也没有公开的利用代码出现。Shaw 表示他将在补丁发布 21 天后发布自己的概念验证代码,而 Rift 是一个警示案例:其利用代码在几天内就公开了,并很快出现了活跃的利用。这就是为什么应该在该漏洞的利用代码出现之前进行升级。
The Hacker News 询问 F5,鉴于 Shaw 记录的变体,切换到命名捕获是否能完全关闭 CVE-2026-42533,以及受影响下游产品的修复版本何时发布。截至发稿时,F5 尚未回应。


消息来源:thehackernews.com;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文
分享到:
hackernews

hackernews

该作者暂无简介