【安全圈】微软紧急发布.NET带外安全更新!修复Brotli解压缓冲区溢出
安全圈 2026-10-27 19:00 江苏

10月26日午后学习通大面积宕机:登录排队、考试中断、作业丢失,官网502。客服称系统维护已完成,这已是一年内第3次

关键词
安全更新
核心事实:微软今日针对 .NET 8、.NET 9、.NET 10 紧急发布罕见的带外(Out-of-Band)非例行安全更新,并同步推出 .NET 11 RC3 候选版本。本次带外补丁重点修复由 Google Brotli C 语言解码器引发的底层缓冲区越界写入漏洞(CVE-2026-111497,CVSS 评分为 8.1 高危)。攻击者向服务端投递精心构造的特制压缩数据,可导致 .NET 进程内存破坏、拒绝服务崩溃(DoS)乃至权限提升。

💥 底层解压越界写:畸形压缩流破坏进程内存
Brotli 是当前 Web 协议与 HTTP/2、HTTP/3 广泛采用的高压缩率数据格式。此前安全界披露的“HTTP2Shell”系列缺陷表明,Google 官方参考实现解码器在处理特定畸形压缩块边界时存在越界写入逻辑,该底层 C 代码被包括 .NET、Node.js、Python、Envoy 在内的全网多个主流基础组件深度内嵌。
在 .NET 运行时环境下,当系统解析恶意供给的 Brotli 压缩数据流时,解压逻辑将突破预分配目标缓冲区的内存边界,破坏相邻堆栈数据。除直接造成应用进程崩溃拒绝服务外,特定内存布局下还可能造成敏感凭据泄露,甚至被高水平攻击者转化为控制流劫持。
🔍 命中条件排查:应用何时会触发危险解压路径?
根据微软安全公告,旧版本 .NET Framework 不受该漏洞影响。但在现代 .NET 环境中,业务若满足以下任意一项配置或编码行为,即可直接暴露在受影响调用链路中:
- ASP.NET Core 开启请求解压缩中间件
:配置启用了
RequestDecompression并注册了 Brotli 提供程序,此时外部未认证攻击者可直接向服务端接口 POST 恶意压缩 Payload 发起攻击 - HttpClient 客户端自动解压缩
:HTTP 请求客户端显式配置了
AutomaticDecompression = DecompressionMethods.Brotli,当应用访问被恶意污染的外部上游接口时,返回的恶意响应包将直接击穿客户端进程 - 业务显式调用压缩命名空间
:业务逻辑直接使用
System.IO.Compression.BrotliStream或BrotliDecoder解码不受信任的二进制输入文件或消息队列载荷
🛡️ 紧急修复指南与容器部署“隐形避坑”重点
微软已于带外推送各支持版本的安全补丁包,开发与运维团队必须区分部署架构分流处置:
- 官方安全版本号
:.NET 8.0 升级至
8.0.33;.NET 9.0 升级至9.0.22;.NET 10.0 升级至10.0.14;.NET 11 预览版用户须升级至11 RC3 3.26522.148 - 宿主共享运行时部署(Framework-dependent)
:直接在服务器系统安装对应版本运行时并重启进程即可生效
- 警惕自包含与容器化“假更新”陷阱
:采用自包含(Self-contained)发布的应用将运行时二进制打包在了应用程序内部,宿主机升级系统运行时无法修复该应用;必须使用最新 SDK 重新编译发布应用。同理,Docker / Kubernetes 容器镜像必须基于微软最新推送的基础镜像重新执行 Build 并滚动替换上线
- 临时止血预案
:对于关键业务暂时无法停机重构发布的系统,可在反向代理网关或配置层临时禁用入站 Brotli 解压缩功能,将解压缩降级为 gzip 或直接拒绝对应请求
END
阅读推荐
本文转载自微信公众号「安全圈」,查看原文。版权归原作者所有,如有侵权请联系删除。


