微软为 .NET 8、.NET 9 和 .NET 10 发布了带外(OOB)安全更新,同时发布 .NET 11 Release Candidate 3(RC3)。更新的重点是修复 .NET 使用 Brotli 解压算法时的缓冲区溢出漏洞 CVE-2026-111497。该漏洞影响所有平台,微软建议用户尽快更新。
此外,2026 年 10 月 13 日的版本没有完全修复 CVE-2026-70197(SocketAsyncEventArgs 内存损坏,涉及 .NET 8、9、10、11)和 CVE-2026-102870(Blazor WebAssembly 调试器,涉及 .NET 10、11)。微软因此重新发布了这两个漏洞的公告,并在本次更新中提供修复。
通过以下方式处理 Brotli 压缩数据的应用可能受影响:
HttpClient 自动响应解压System.IO.Compression 的 Brotli API微软说明,请求解压和自动响应解压默认不开启。.NET Framework 不受影响。
CVE-2026-114148 的影响范围因版本而异。在 .NET 10 和 .NET 11 中,它只影响源码构建(source-build)的 tarball。在 .NET 8 和 .NET 9 中,它还影响通过 ASP.NET Core tarball 获取的发行版,即使用户并不从源码构建 .NET。
更新后的版本如下:
微软给出的更新方式按部署形态区分:
可以用 dotnet --list-runtimes 查看机器上已安装的运行时。微软提醒,自包含应用和容器部署自带运行时,需要单独检查。
他称该漏洞最初被叫作 Node2Shell,后来改称 HTTP2Shell,可由恶意构造的 Brotli 负载触发。
他在文中称,Google 于 2026 年 2 月 27 日修复了该问题,但新版本直到 2026 年 10 月 21 日才发布。他还称,Google Brotli 仓库中有 3 个越界读取问题的修复以 PR 形式公开挂着,而维护者表示资源有限,有时间才发版。以上均为该作者的说法。
文中提到,Bugsink 正在添加关闭 Brotli 解码的开关(PR #568),并已向 Sentry 询问能否弃用 Brotli。他也建议各方考虑是否真的需要支持 Brotli。