多个科技公司和开源项目正在为名为“HTTP2Shell”的Brotli压缩漏洞发布补丁。据TechRadar报道,该漏洞可造成内存破坏并可能导致远程代码执行,受影响软件包括Node.js、Python包和.NET应用,规模可能波及数百万网站。
该漏洞存在于谷歌开发的开源压缩算法Brotli中,网络常用它压缩HTML、CSS和JavaScript等HTTP响应,主流浏览器、服务器和软件库均支持该算法。漏洞被描述为越界写入,也被称为Node2Shell或Broccoli2Shell,编号为CVE-2026-111497,严重性评分为9.2/10,级别为“严重”。美国国家漏洞数据库称,该缺陷造成缓冲区溢出,可能导致内存泄露、拒绝服务,部分情况下可远程执行代码。受影响组件包括Node.js、brotlicffi、Requests、urllib3、httpx、aiohttp等HTTP客户端,以及使用Brotli解码器的Bun和Envoy部署。
谷歌于2026年10月21日发布Brotli 1.0.10、1.1.1和1.2.1版本修复该漏洞。但一些软件捆绑或使用存在漏洞的Brotli版本,仅升级谷歌库未必能保护所有应用。微软在上个周末为.NET发布紧急更新,称成功利用该漏洞可能导致权限提升。Node.js也在10月21日发布补丁,并解释称无效块切换被报告为临时需要更多输入,而不是永久格式错误,流式解码器持续把输入字节追加到8字节内部缓冲区;攻击者若能提供由应用通过node:zlib解压的Brotli数据,便可破坏进程内存,导致崩溃、进程内存泄露或远程代码执行。Node.js 26.x、24.x和22.x受到该漏洞影响。
据BleepingComputer报道,包含修复的PyPI包于两天后的10月23日可用。已发布修复版本包括Node.js 22.23.4、24.22.1、26.12.1,Python Brotli 1.2.1,Python brotlicffi 1.2.1.0。与此同时,有人设立了Broccoli2Shell.com网站,介绍该问题、追踪易受攻击版本并报告野外利用尝试。网站称该漏洞的概念验证利用代码已经存在,但尚未见到恶意利用的野外报告。“一个公开的概念验证于2026年10月22日出现在GitHub上,”网站称,“据称它仅在故意削弱的构建上达到代码执行。在标准构建上,它会导致崩溃和有限的内存读取。”
系统管理员被建议尽快应用补丁,重启受影响进程,并重新构建和重新部署受影响的容器镜像。无法立即处理的用户可采取部分缓解措施:Python用户应卸载存在漏洞的Brotli和brotlicffi包,并移除httpx[brotli]等可选依赖;管理员还可配置代理、负载均衡器或Web应用防火墙,拒绝包含Brotli压缩请求体的传入请求。但该措施不能保护下载并解压恶意HTTP响应的应用。报道称,Node.js没有完整的变通方案。