关键词

漏洞

核心事实:Google 维护的通用压缩算法 Brotli 确认底层缓冲区越界写入漏洞(CVE-2026-111497)。由于各编程语言和网关通常直接内置该 C 解码器源码,缺陷已在整个软件基础设施生态引发连锁反应,Node.js、Bun、Python Brotli 库及 Envoy 代理等核心组件全线受波及。Imperva 实验室已在特定无防护 Node.js 镜像上验证远程代码执行(Node2Shell)

打开网易新闻 查看精彩图片

解码器越界写入:畸形压缩流破坏内存

漏洞根源存在于 Google Brotli 解码器(C 语言参考实现)处理解压数据流的边界控制逻辑中。当程序解析特制的畸形 Brotli 压缩数据时,解压逻辑会越过预分配的目标缓冲区末尾,直接向临近内存区域写入数据

这种内存越界写入可直接导致服务进程段错误崩溃(DoS),甚至可能被黑客精心构造的恶意负载用于劫持控制流或泄露内存敏感信息。只要目标服务允许客户端提交或从外部拉取 Brotli 压缩数据,攻击者无需身份验证即可发起探测

生态连锁穿透:各主流组件受影响场景

由于各大主流运行时直接打包复用 Google 的 C 解码器源码,导致补丁必须由下游厂商各自独立合并构建,影响范围广泛分布于多个常见栈:

  • Node.js 运行时

    :内置fetch()在接收到响应头Content-Encoding: br时会自动解压,或 Web 框架(如 Express 5、body-parser 2)开启 Brotli 请求体解析时直接暴露

  • Bun 运行时

    :1.4.3 及更早版本在使用内置fetch()或node:zlib解码不受信任的 Brotli 数据时同样受波及

  • Python 隐蔽风险

    :系统只要安装了brotli或brotlicffi模块,主流 HTTP 客户端(requests、urllib3、httpx、aiohttp)就会默认启用 Brotli 自动解压,即便业务代码从未显式 import 它

  • 云原生网关 Envoy & Istio

    :只有在显式配置开启入站 Brotli 解压缩过滤器时才会被该漏洞触发

实战利用评估:Node2Shell 概念验证

Imperva 威胁研究员已完成针对未打补丁 Node.js 的概念验证利用(Node2Shell),成功跑通了任意代码执行。但该利用高度依赖特定内存布局,在其它软件或开启标准 ASLR/RELRO 防护的生产系统上尚未观察到稳定 RCE

截至目前全球尚未发现针对该漏洞的大规模在野利用,但远程发起 DoS 崩溃的利用门槛极低,极易成为针对核心网关和 API 节点的拒绝服务武器

️ 官方修复版本与应急防范清单

各大维护团队已陆续发布修复版本,运维与开发团队请立即核对并升级:

  • Google Brotli 源码

    :升级到1.2.1(或对应分支的 1.0.10、1.1.1)

  • Node.js

    :升级到26.12.1、24.22.1或22.23.4(Node.js 20 及更早版本已达生命周期终点,建议尽快迁出)

  • Bun

    :立即升级到1.4.4

  • Python 包

    :更新brotli >= 1.2.1,brotlicffi >= 1.2.1.0

  • Envoy / Istio

    :升级到 Envoy 1.40.0 / 1.39.3 / 1.38.6,或 Istio 1.31.2 / 1.30.6 / 1.29.9

  • 临时规避

    :若无法第一时间重启升级,可在入口网关暂时关闭 Brotli 解压缩过滤器,退回仅支持 gzip。

打开网易新闻 查看精彩图片

安全圈

打开网易新闻 查看精彩图片

网罗圈内热点 专注网络安全

实时资讯一手掌握!

好看你就分享 有用就点个赞

支持「安全圈」就点个三连吧!