2026年10月25日,.NET 官方发布了一组带外安全更新,覆盖 .NET 8、.NET 9、.NET 10 以及 .NET 11 候选版本 3。官方建议相关用户尽快更新,以修复 Brotli 解压、Linux 安装包权限元数据等问题,并补齐此前未完全解决的两项安全修复。
本次发布包含哪些更新
- .NET 8 更新至 8.0.33,包含 SDK 和 Runtime。
- .NET 9 更新至 9.0.22,包含 SDK 和 Runtime。
- .NET 10 更新至 10.0.14,包含 SDK 和 Runtime。
- .NET 11 发布候选版本 3,包含 SDK 和 Runtime;使用 RC2 的用户需要升级至 RC3 才能获得这些修复。
本次更新的主要安全修复是 CVE-2026-111497。官方资料指出,.NET 使用 Brotli 解压算法时存在缓冲区溢出漏洞,未经身份验证的攻击者可能读取或破坏进程内存,进而造成信息泄露、拒绝服务或权限提升。在此次公告涉及的 .NET 8、9、10、11 范围内,该漏洞被标记为影响所有平台,但 .NET Framework 不受影响。
另一项修复针对 CVE-2026-114148。受影响的 Linux .NET tarball 存在不安全的文件所有权元数据,本地攻击者可能借此修改文件并获得更高权限。对于 .NET 10 和 .NET 11,该问题仅影响从源代码构建所使用的 tarball;对于 .NET 8 和 .NET 9,通过 ASP.NET Core tarball 获得的发行包同样可能受到影响,即使使用者并未自行构建 .NET。
此次更新还重新发布了 CVE-2026-70197(SocketAsyncEventArgs 内存损坏)和 CVE-2026-102870(Blazor WebAssembly 调试器)的安全公告。原因是2026年10月13日的发布没有完全解决这两个问题,本次更新已包含相应修复。
哪些应用需要重点检查
如果应用通过 ASP.NET Core 请求解压、HttpClient 自动响应解压,或 System.IO.Compression 的 Brotli API 处理 Brotli 压缩数据,应检查是否受到 CVE-2026-111497 影响。其中,ASP.NET Core 请求解压和 HttpClient 自动响应解压默认并未启用,因此是否需要采取额外措施,还取决于实际配置和业务处理方式。
对于 Linux 环境,使用 .NET 10、.NET 11 源代码构建 tarball 的团队需要重新获取更新后的构建产物并重建相关包。使用 .NET 8、.NET 9 ASP.NET Core tarball 的团队则应替换为刷新后的 ASP.NET Core Runtime tarball,即使其工作流并不包含源代码构建。
不同部署方式应如何更新
- 依赖框架的应用:安装目标版本的新 Runtime,然后重启应用。
- 自包含应用:使用更新后的 Runtime 重新构建并发布。主机上安装新版 Runtime,不会替换应用自带的 Runtime。
- 容器部署:使用包含更新 Runtime 的 .NET 容器镜像重新构建和部署。
- 源代码构建用户:获取对应版本的更新源构建产物,并重新构建自己的软件包,以纳入 tarball 所有权修复。
更新后如何核对
可以通过 dotnet --list-runtimes 查看机器上已安装的 Runtime,确认框架依赖型部署已使用对应的新版本。自包含应用和容器携带各自的 Runtime,需要单独检查,不能仅依据主机上的 Runtime 版本判断。
如果更新后遇到兼容性问题,可向 .NET 官方发布反馈问题区报告,以便官方团队跟进处理。
资料来源:.NET October 2026 Out-of-Band Security Updates(2026-10-25)。
一起聊聊
留下你的想法,评论审核通过后展示。