返回

文章详情

Node2Shell 演变为 HTTP2Shell,爆炸半径影响许多 HTTP 库和应用

Hacker News2026年10月24日 08:06

TL;DR ⚠️ Brotli 是一个来自谷歌的广泛使用的压缩库。10 月 21 日星期三,NodeJS 披露了 CVE-2026-111497,称为 “node2shell”,其中一个解压缩恶意控制的 Brotli 数据的 Node.js 进程可能会导致内存泄漏或运行任意代码。10 月 22 日星期四,Python 披露出 Python 包也易受 CVE-2026-111497 的影响。10 月 23 日星期五,已知这个 CVE 影响使用 HTTP 的其他主要语言和服务应用,补丁尚未完全可用。检查您是否在库中解码 Brotli 作为依赖项。保持警惕,等待更广泛的公告,并准备尽快升级。如果没有可用于可能受到影响的库或应用的补丁,我们建议在补丁可用之前禁用 Brotli 解码。更新:太平洋时间下午 4:12:libbrotli、Python、C++、NodeJS、bun、Envoy 和更多即将推出的补丁已可用。Apache 和 Nginx 默认不解码 Brotli。更新:太平洋时间下午 4:15:OpenAI 表示他们在 2 月发现了这个漏洞。尽管根本原因问题在当时已修复在 Brotli 源代码中,但并未意识到它导致了安全漏洞。OpenAI 在此处的建议。‍ 什么是 Brotli?Brotli 是一个无损压缩算法和数据格式,由谷歌开发。这是一种使数据更小,以便于存储或通过互联网发送。然后软件会解压缩以恢复原始数据。它被广泛用于 HTTP 压缩,以压缩 HTML、CSS 和 JavaScript 等网页内容。什么是 CVE-2026-111497?CVE-2026-111497 是一个在谷歌 Brotli 解码器中的越界写入,影响所有平台的版本 1.0.3 到 1.2.0。这是几天前宣布的 Node2Shell 背后的同一个 Brotli 解码器缺陷。远程的、未经过身份验证的攻击者可以发送一个特制的 Brotli 压缩流来破坏内存,泄露敏感数据,崩溃进程,或有可能执行任意代码。它的 CVSS v4.0 分数为 9.2(严重),Node.js 通过其捆绑的 Brotli 库受到影响。一个错误导致 Brotli 解码器在应该拒绝数据时继续接受更多字节。这些字节可能会溢出一个小工作缓冲区并损坏程序的内存。攻击者可以利用该损坏来控制运行的内容,例如他们自己的代码。OpenAI 在 2 月发现这一问题,报告为未认证的远程代码执行,能够双向工作,所以恶意客户端可以接管未打补丁的服务器,恶意服务器可以接管接受压缩响应的未打补丁的客户端。根本原因在 2 月份已修复在 Brotli 源代码中,但当时未被认定为安全问题,直到现在才有发布带有修复的版本。这意味着每个捆绑 Brotli 的项目必须发布自己的更新。‍ 如果任何环境中安装了 Brotli 1.2.0 或更早版本或 brotlicffi 1.2.0.x,则您处于暴露状态,因为 HTTP 客户端如 requests、httpx 和 aiohttp 会在存在这些软件包时自动加载它们。升级到 Brotli 1.2.1 或 brotlicffi 1.2.1.0,并重建捆绑它们的任何容器镜像。截至 10 月 23 日,建议数据库尚未将 CVE 映射到任何 PyPI 包,因此 pip-audit、Dependabot 和 Safety 尚未标记易受攻击的版本。‍ 您可以在 Aikido Intel 中查看我们跟踪的内容。Python C++ Libbrotli NodeJS 至于未受影响的软件,Apache 的标准 mod_brotli 不解码 Brotli 对于 CVE-2026-111497,更新受影响的运行时或 Brotli 库:Node.js:升级到 22.23.4、24.22.1 或 26.12.1,或在相应发布行中的更新支持版本。本地 Brotli / libbrotli:升级到 1.2.1 或更高版本。对于旧的发布行,使用已修补的 1.0.10 或 1.1.1。Python 包:无论安装在哪里,将 Brotli 升级到 1.2.1 或更高版本,并将 brotlicffi 升级到 1.2.1.0 或更高版本。curl / libcurl:将其 Brotli 依赖项更新为 1.2.1,一个修补的旧版本,或供应商的安全修复包。捆绑或静态链接的副本需要更新的应用程序构建。Bun:升级到 1.4.4 或更高版本。重建捆绑 Bun 的编译可执行文件。Envoy:升级到 1.40.0、1.39.3、1.38.6 或 1.37.8,或在支持的分支中更新的版本。1.36.12 也包括修复,但 1.36 分支不再支持。Istio:修复已包含在 1.29.9、1.30.6 和 1.31.2 中。使用相应行中的更新支持版本;1.29 分支已结束生命周期。操作系统包:安装供应商的安全更新。供应商可能在不更改上游版本号的情况下回溯修复。其他 HTTP 服务器、反向代理、API 网关和 HTTP 客户端:更新它们使用的受影响的运行时或 Brotli 库。在产品中捆绑 Brotli 的地方,安装明确解决该 CVE 的产品供应商的发布版本。对于托管服务,请与提供商确认补救措施。

阅读全文 →

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡