HTTP2Shell 漏洞的影响范围已超出 Web 流量。新的研究显示,同一个 Brotli 解码器缺陷(CVE-2026-111497)同样能够破坏 .NET 应用、FFmpeg 媒体处理、ClickHouse 服务器以及 Apache Arrow 工作负载。

这些发现表明,仅核查 Node.js 版本,可能会遗漏其他已暴露的软件。在 10 月 25 日发布的研究中,JFrog 研究员 Aviv Engelberg、Eddy Tsalolikhin 和 Ofri Ouzan 追踪了 CVE-2026-111497 在多个软件栈中的表现。
他们的发现描述了崩溃、内存损坏以及无限解码循环——具体表现取决于各应用如何使用受影响的库。
该漏洞于 10 月 21 日首次在 Node.js 安全更新中披露,其根源在于谷歌的 Brotli 解码器,而非 HTTP 本身。一个非法的块切换(block switch)会被误判为”需要更多输入”的请求。
随后处理过程在损坏的解码器状态下继续,导致越界写入预期内存缓冲区之外。受影响的上游版本包括:Brotli 1.0.3 至 1.0.10 之前的版本、1.1.1 之前的 1.1.0,以及 1.2.1 之前的 1.2.0。
各项目可能在不升级到上述上游版本的情况下就应用了修复,因此团队必须核查厂商的补丁记录,而不能仅凭版本号判断。
HTTP2Shell 漏洞
在 FFmpeg 中,研究人员经由处理 JPEG XL 图像的 libjxl 触达该解码器。一张精心构造的图片在压缩的元数据盒中携带了畸形的 Brotli 数据。当 libjxl 解码这些数据时,内存损坏导致进程在清理阶段崩溃。
该测试表明攻击者能够控制一个被损坏的指针值。不过,这并未证实针对 FFmpeg 的完整远程代码执行利用链。
这条基于文件的攻击路径,加剧了此前报道中关于 FFmpeg 媒体文件漏洞以及其他 FFmpeg 内存损坏缺陷的担忧。不过,那些报道涉及的是另外的独立漏洞。
JFrog 还通过 .NET 的 Brotli 解压 API 触发了一次原生崩溃。一个两阶段数据流使解码器进入非法状态,随后一次内存操作越出了有效堆数据范围。与常规的托管异常不同,由此产生的段错误会直接终止进程。
该演示使用的是本地控制台应用。不过,相关的解码路径可能服务于 HttpClient 的响应解压以及 ASP.NET Core 的请求解压中间件。微软于 10 月 25 日宣布,正在为受支持的运行时和 SDK 推出更新。
ClickHouse 在收到一个带有 23 MB Brotli 压缩体的精心构造 HTTP 请求后即告失效。解码器损坏导致清理阶段崩溃,使被测服务器停止运行并中断了正在进行的查询。JFrog 报告称已有修复被合并,但在其研究发布时尚未推出修补版本。
Apache Arrow 的表现则有所不同。通过 pyarrow 的 Brotli 解码路径发送一个 534 字节的输入,便引发了无限循环,持续消耗 CPU 且无法完成。而 Brotli 1.2.1 在不到一秒内就拒绝了同样的输入。该问题在 Arrow 上的跟踪议题在本文发布时仍处于开启状态。
据 Sysdig 威胁研究团队介绍,Node.js 的修复已随 22.23.4、24.22.1 和 26.12.1 版本发布,其中 24.22.1 的发布说明确认包含 Brotli 补丁。其他应用则需要各自的更新构建或库包。
团队应追踪不受信任的文件、缓冲区、请求和响应是如何进入解压代码的。JFrog 的扫描工具可帮助识别潜在路径,但仅凭匹配结果并不能证明可被远程利用。
作者:Abinaya
原文:https://cybersecuritynews.com/http2shell-vulnerability/
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/zixun/72800.html