Microsoftは、「Broccoli2Shell」と呼ばれる重大な脆弱性を修正するため、緊急の.NETセキュリティ更新プログラムを公開しました。この脆弱性は「Node2Shell」「HTTP2Shell」としても追跡されています。
この脆弱性はCVE-2026-111497として追跡されており、深刻度は「緊急」です。Imperva Red Teamが発見しました。原因は、Brotliデコーダーにおける境界外書き込みです。Brotliは、Googleが開発した広く使われている可逆圧縮アルゴリズムで、このデコーダーは同アルゴリズムで圧縮されたデータを展開します。
悪用に成功すると、権限を持たない攻撃者が、細工したBrotli圧縮ストリームを使ってクラッシュやメモリリークを引き起こせます。脆弱なBrotliのバイナリやライブラリを使用するデバイスでは、場合によってリモートコード実行を許す恐れもあります。
日曜日に公開されたMicrosoftのセキュリティ情報によると、パッチを適用していない.NET環境がデフォルト以外の構成になっている場合、攻撃者はこの脆弱性を悪用し、リモートから権限を昇格させることもできます。
Microsoftは次のように説明しています。「ASP.NET Coreのリクエスト展開、HttpClientの自動レスポンス展開、System.IO.CompressionのBrotli APIのいずれかを通じてBrotli圧縮データを処理するアプリケーションは、影響を受ける可能性があります」(Microsoft)。
「Brotliの展開は、.NETまたはASP.NET Coreの初期インストール状態では有効になっていません。ASP.NET Coreのリクエスト展開やHttpClientのレスポンス展開を手動で有効にしているか、.NETが提供するBrotli展開APIを手動で呼び出している場合に限り、影響を受けます」
この脆弱性に対処するため、Microsoftは.NET 8、.NET 9、.NET 10向けに定例外(OOB)のセキュリティ更新プログラムを公開しました。あわせて.NET 11 Release Candidate 3も公開し、「できるだけ早く更新する」ことを推奨しています。
| .NETのバージョン | 更新プログラム | ダウンロード |
|---|---|---|
| .NET 8 | 8.0.33 | .NET 8 SDKおよびランタイム |
| .NET 9 | 9.0.22 | .NET 9 SDKおよびランタイム |
| .NET 10 | 10.0.14 | .NET 10 SDKおよびランタイム |
| .NET 11 | Release Candidate 3 | .NET 11 SDKおよびランタイム |
Broccoli2Shellの概念実証(PoC)コードはすでにGitHubで公開されています。ただし、実環境での悪用は今のところ報告されていません。
この脆弱性を追跡している専用のオンラインポータルは、次のように警告しています。システムのBrotliライブラリを更新しても、独自のコピーをバンドルしているアプリではリスクが解消されません。
更新プログラムをすぐに適用できない場合は、プロキシやファイアウォールでBrotli圧縮された受信リクエストをブロックするか、パッチを適用できるまでBrotliのデコードを無効にしてください。