
Brotli漏洞波及.NET:容器與自含式部署須重新建置
Microsoft 於 10 月 25 日釋出 .NET 的帶外(out-of-band)安全更新,處理 Brotli 解壓縮函式庫的高風險漏洞 CVE-2026-111497。iThome 報道指出,若 .NET 程式解開由攻擊者提供的惡意 Brotli 資料,內容可能被寫入預定範圍以外的程式 RAM;未經身分驗證的攻擊者或可藉此讀取或破壞記憶體,引發資料外洩、服務中斷或權限提升。該漏洞的 CVSS 評分為 8.1。
對 .NET 與 ASP.NET Core 團隊而言,重點不只在於安裝 runtime 更新,而是先確認服務是否會對不受信任資料作 Brotli 解壓縮。iThome 指出,以下情境較值得優先盤點:ASP.NET Core 解壓收到的請求、HttpClient 自動解壓縮 server 回應,以及程式直接使用 Brotli 解壓縮 API。
不過,前兩種自動解壓縮行為預設並未啟用,故並非每個 ASP.NET Core 或 HttpClient 專案都會自動落入相同風險範圍。這也意味著,修補工作應配合設定與程式碼審視:團隊要找出是否已開啟相關選項,以及資料來源是否可由外部控制。iThome 同時指出,.NET Framework 不受此漏洞影響。
部署方式決定修補是否完成
Microsoft 提供的修補版本包括 .NET 8.0.33、9.0.22、10.0.14,以及 .NET 11 RC3。採用共享/主機 runtime 的應用程式,更新 runtime 後仍須重新啟動;自含式(self-contained)程式和容器映像則要重新建置及重新部署。
這項差異在 DevOps 流程尤其實際。若容器映像或自含式發佈產物仍包含舊 runtime,即使主機上的共享 runtime 已更新,服務本身仍未因而獲得修補。以容器作部署的團隊可把 runtime 基底映像及發佈流程納入同一輪更新與驗證,避免只完成主機層面的修補。
同一更新亦補回三項問題
iThome 報道稱,這次更新還處理了 10 月 13 日安全更新未完整修補的兩項漏洞。CVE-2026-70197 涉及 Windows 網絡通訊的記憶體損壞,早前的修正程式未被納入更新;CVE-2026-102870 則影響 .NET 10 及 11 的 Blazor WebAssembly 偵錯器。開發者若在偵錯期間,透過偵錯器計算涉及攻擊者控制資料的運算式,可能在自己的電腦執行惡意程式碼。
後者有一個容易漏掉的限制:受影響的偵錯器套件需要另行更新,單獨更新共享 runtime 並不足夠。對同時維護 CI 環境、開發者工作站及應用程式 runtime 的團隊,這是兩條不同的更新路徑。
此外,CVE-2026-114148 涉及 Linux 版 .NET 封裝在解壓時保留不安全檔案擁有權資訊;本機攻擊者可能藉此改動檔案並提升權限。受影響範圍包括 .NET 8 至 11 的原始碼建置封裝,以及 .NET 8、9 的部分 ASP.NET Core 封裝。iThome 指出,使用相關 ASP.NET Core 封裝的用戶即使沒有自行建置,也要更新;受影響者須在新目錄安裝已修正版本,而使用原始碼建置封裝者亦要重新建置套件。
下一步,.NET 團隊可按部署模式分流處理:共享 runtime 服務安排更新與重啟;self-contained 及容器工作負載重建產物;使用 Blazor WebAssembly 偵錯器者則核對相關套件版本。對外處理解壓資料的服務,應優先完成版本更新和部署驗證。
延伸閱讀
AI 輔助說明: 本文由 AI 協助整理,並經兩輪獨立自動品質審核;資料及連結仍以原始來源為準。
參考來源
- iThome — Brotli解壓縮漏洞也影響.NET,微軟緊急發布臨時更新修補 — original report
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。





