Microsoft は2026年10月25日(米国時間)、.NET 8・9・10の定例外のセキュリティ 更新を出しました。版は8.0.33・9.0.22・10.0.14です。データを圧縮する部品「Brotli」の脆弱性 CVE-2026-111497を直すためで、PowerShell 7も同じ日に7.6.9・7.5.13・7.4.22が出ました。Microsoftは、Visual Studio 2019・2022・2026の直った版も挙げています。
この脆弱性は、10月21日にNode.jsの更新 で直ったものと同じです。クラウドのセキュリティ会社Wizは10月25日、影響がEnvoy・Istio・BunやPythonの部品などにも及ぶとして、製品ごとの直った版を一覧にしました。
Microsoftの評価は「緊急」 公開済みで悪用は未確認
Microsoftのセキュリティ更新プログラム ガイドでは、CVE-2026-111497の深刻度は製品により「緊急」か「重要」で、CVSSの基本値は8.1です。脆弱性の中身はすでに公開済みで、悪用はまだ確認されていません。ただし、悪用される可能性は「高い」との評価です。
.NETのリリースノートは、細工した圧縮データを処理すると、サービスの停止、情報の漏えい、権限の昇格につながるおそれがあるとしています。Wizは、条件がそろえば、攻撃者が遠隔からコードを実行できるおそれがあると説明しています。Wizは、この脆弱性を「Broccoli2Shell」と呼んでいます。
.NETで当たるのは、Brotliを展開する3つの使い方
リリースノートによると、当たるのは次の3つの使い方で、Brotliのデータを展開するアプリです。
ASP.NET Coreで、受け取った要求の圧縮を展開する機能
HttpClientで、応答の圧縮を自動で展開する設定
System.IO.CompressionのBrotliの機能
要求と応答の自動の展開は、既定では有効になっていません。.NET Frameworkは対象外です。Microsoftは、当たる環境をできるだけ早く更新するよう勧めています。
開発の担当者がコードを探すときは、名前が目印になります(当社の見立て)。要求の展開はUseRequestDecompression、HttpClientの自動の展開はAutomaticDecompression、Brotliの機能はBrotliStreamやBrotliDecoderです。ただ、使っている部品(NuGetのパッケージ)の中で展開していることもあります。コードに名前が無くても、ランタイムの更新は済ませます。
Microsoftの製品の直った版
Brotliの脆弱性の直った版。Microsoftの製品とほかのソフト 作成: 編集部 / 出典: Microsoft(セキュリティ更新プログラム ガイド・.NETのリリースノート)、PowerShell、Envoy、Istio、Bun、Wiz
製品
直った版
.NET 10
10.0.14(SDKは10.0.403・10.0.114)
.NET 9
9.0.22(SDKは9.0.320・9.0.123)
.NET 8
8.0.33(SDKは8.0.427・8.0.133)
.NET 11(試用版)
SDK 11.0.100-rc.3.26522.148
PowerShell 7
7.6.9・7.5.13・7.4.22
Visual Studio 2026
18.11.2(試用版は18.12 Insiders 3)
Visual Studio 2022
17.14.43
Visual Studio 2019
16.11.61
PowerShellの3つの版は、中身が.NET SDKの更新だけです(7.6.9は10.0.403、7.5.13は9.0.320、7.4.22は8.0.427)。PowerShell 7は、Windowsの更新の設定によっては自動で上がりません。上げ方は、PowerShell 7の脆弱性2件の記事 と同じです。
アプリの作り方で、やることが変わります。ランタイムを別に入れて動かすアプリは、ランタイムを上げて再起動します。ランタイムを同梱した自己完結のアプリや、コンテナのイメージは、修正版で作り直して配り直します。
10月13日の修正が不十分だった2件も直った
.NETのリリースノートは、10月13日の月例の更新で直したはずの2件について、修正が十分でなかったとして勧告を出し直しました。今回の8.0.33・9.0.22・10.0.14で直ります。
CVE-2026-70197(リモートでのコードの実行、CVSS 8.1): ソケットの処理(SocketAsyncEventArgs)でメモリーが壊れる脆弱性です。.NET 8・9・10が対象です。Microsoftは10月19日、ガイドの中で「まだ直っていない」と認め、完全な対策を準備していると書いていました。
CVE-2026-102870(リモートでのコードの実行、CVSS 8.8): Blazor WebAssemblyのデバッグの脆弱性で、.NET 10が対象です。デバッグの最中に、開発者が細工されたデータを確かめると、開発者の権限でコードが動くおそれがあります。直すには、使っているプロジェクトで2つの部品を10.0.14に上げます。部品の名前は、Microsoft.AspNetCore.Components.WebAssembly.Serverと、Microsoft.AspNetCore.Components.WebAssembly.DevServerです。共有のランタイムを上げるだけでは、この部品は上がりません。
同じ更新で、新しい脆弱性CVE-2026-114148(権限の昇格、重要)も直りました。Linux向けの圧縮ファイル(tarball)で、中のファイルの所有者が正しくない問題です。.NET 8・9では、Microsoftが配るASP.NET Coreのランタイムとターゲティングパックの圧縮ファイルと、ソースから作る版(source-build)のすべてが対象です。.NET 10では、ソースから作る版だけが対象です。
Microsoftは、そのサーバーにログインできる攻撃者が、最も高い権限を得るおそれがあるとしています。新しい圧縮ファイルを落とし直すだけでは、入れ済みの環境の所有者は直らないとも書いています。
Node.jsの外へ Envoy・Istio・Bun・Pythonも
Wizは、脆弱性のもとはGoogleのBrotliの展開の部分(C言語で書かれた部分)にあり、それを組み込んだ多くのソフトに及ぶと説明しています。攻撃には、アプリか、アプリが使う部品が、攻撃者の用意したBrotliのデータを展開することが要ります。受け取った要求だけでなく、外のサーバーから取ってきた応答も入口になります。
Wizのデータでは、クラウドの環境の91%に、この脆弱性に当たる資源がありました。82%の環境では、Node.jsがインターネットに公開されていました。
製品
直った版
発表
Brotliの本体
1.2.1・1.1.1・1.0.10
10月22日(日本時間)
Node.js
26.12.1・24.22.1・22.23.4
10月21日(日本時間)
Bun
1.4.4
10月23日(勧告、協定世界時)
Envoy
1.40.0・1.39.3・1.38.6・1.37.8・1.36.12
10月23日(勧告、協定世界時)
Istio
1.31.2・1.30.6・1.29.9
10月15日
PythonのBrotli・brotlicffi
1.2.1・1.2.1.0
Wizの一覧による
Goのandybalholm/brotli
v1.2.7
Wizの一覧による
Envoyの勧告は、Brotliの展開を設定したEnvoyが当たるとしています。GitHubのリリースでは1.39.3は10月6日に出ており、脆弱性が公になる前の版で直っていました。IstioはEnvoyを使うため、10月15日の勧告で、EnvoyFilterなどでBrotliの展開を有効にした利用者に、上げるよう求めています。
Bunのfetchは、既定でBrotliの応答を受け取り、自動で展開します。bun build --compileで作った実行ファイルは、Bun 1.4.4で作り直すまで当たったままです。全体を止める回避策は無く、fetchにdecompress: falseを渡すと、その要求だけ展開しなくなります。
Wizは、すぐ上げられないときの暫定策として、Brotliの展開を止めるか、Brotliで圧縮された要求を手前で断ることを挙げています。ただ、更新の代わりにはならないとしています。WAFやアプリの記録で、Brotliで圧縮された不審な通信や、アプリの異常な停止を見ることも勧めています。
影響する会社・しない会社
影響する: .NETで作った業務アプリ(自社開発でも委託でも)を動かしている会社です。インターネットから要求を受けるASP.NET CoreのWebアプリや、外のAPIから応答を受け取るアプリを先に見ます。
影響する: 管理用のスクリプトなどでPowerShell 7を使う会社と、開発でVisual Studioを使う会社です。
影響する: Envoy・Istio(Kubernetesの通信の管理など)、Bun、PythonやGoのBrotliの部品を使う会社です。委託先やクラウドの事業者が運用しているときは、先方に版を確かめます。
影響しにくい: .NET Frameworkだけで動くアプリは対象外です。.NETのアプリでも、3つの使い方をしていなければ、当たる場面は限られます。ただ、部品の中での展開もあるため、更新は済ませます(当社の見立て)。
情シスが今日やること
.NETで動くサーバーとアプリを一覧にし、ランタイムの版を確かめます(dotnet --list-runtimes)。8.0.33・9.0.22・10.0.14より前なら上げます。
ランタイムを別に入れるアプリは、上げたあと再起動します。自己完結のアプリとコンテナのイメージは、修正版で作り直して配り直すよう、開発の担当や委託先に頼みます。動いているプロセスが新しい版を読んでいるかも確かめます。
Blazor WebAssemblyを使う.NET 10のプロジェクトでは、部品2つを10.0.14に上げるよう開発の担当に頼みます。
PowerShell 7の版を確かめ、7.6.9・7.5.13・7.4.22に上げます。Visual Studioは、Visual Studio Installerから上の表の版に上げます。
Linuxで.NETを圧縮ファイルから入れたサーバーがあれば、CVE-2026-114148の対象かを確かめます。落とし直すだけでは、所有者は直りません。
Envoy・Istio・Bun・Python・GoのBrotliの部品を使うシステムを、委託先やクラウドの担当と確かめます。すぐ上げられないときは、Brotliの展開を止めるなどの暫定策を決めます。
.NET 8・9は11月10日にサポートが終わります。10への移行の予定を、.NET 8・9のサポート終了の記事 とあわせて確かめます。