.NETのセキュリティ脆弱性にマイクロソフトが緊急パッチを公開
マイクロソフトが、.NET向けの緊急セキュリティパッチを定例スケジュール外で公開した。対象は、グーグルが開発したBrotli圧縮解凍技術における「バッファオーバーフロー」(プログラムが割り当てられたメモリ領域を超えてデータを書き込む欠陥)の脆弱性(CVE-2026-111497)である。マイクロソフトは現地時間10月25日日曜日に、.NET 8・9・10および.NET 11リリース候補(RC、正式リリース前のプレビュー版)3向けのアップデート計4本を公開し、可能な限り早期の適用を推奨した。
この脆弱性はImpervaレッドチームが発見したもので、「Broccoli2Shell」と呼ばれ、Node2Shell、HTTP2Shellという別名でも追跡されている。原因は、Brotliデコーダーで発生する境界外書き込み(割り当てられたメモリ範囲を超えてデータを書き込む問題)である。
マイクロソフトは脆弱性の説明において、認証されていない攻撃者がプロセスメモリを読み取ったり破壊したりする可能性があると述べた。その結果、情報漏えい、サービス拒否(DoS)、権限昇格につながる恐れがある。公式CVEデータベースの項目には、細工されたBrotli圧縮ストリームを利用した任意コード実行の可能性も記載されている。この脆弱性のCVSS(共通脆弱性評価システム)スコアは9.2で、深刻度は最高水準である。
マイクロソフトセキュリティ対応センターは、脆弱性がすでに公開されており、独自分析では深刻度「重要」に相当するが、悪用の痕跡はまだ確認されていないとし、悪用可能性の評価では「可能性高」と分類した。Broccoli2Shellの概念実証(PoC)攻撃コードはすでにGitHub上に公開されている。
影響範囲は、Brotli圧縮データを処理する経路を利用している場合に限定される。マイクロソフトによると、ASP.NET Coreのリクエスト解凍、HttpClientの自動レスポンス解凍、System.IO.CompressionのBrotli APIのいずれかを使用しているアプリケーションが該当する。これらの機能はデフォルト設定では無効になっており、開発者が自らオプションを有効にした環境がリスクにさらされる。.NET Frameworkは影響を受けず、この脆弱性はすべてのオペレーティングシステム上の.NET 8・9・10・11に影響を及ぼす。
ただし、システムのBrotliライブラリだけを更新しても、Brotliのコピーを独自に内蔵したアプリケーションのリスクは解消されない可能性があるとの警告も出ている。開発者は.NETアップデートの適用とともに、アプリ内のBrotli構成も併せて確認する必要がある。
今回のアップデートの適用方法は、配布形態によって異なる。マイクロソフトの案内によると、フレームワーク依存アプリケーションは更新されたランタイムをインストールした後に再起動すればよいが、自己完結型アプリケーションは再ビルドして再配布する必要がある。コンテナも更新されたイメージで再作成しなければならない。インストール済みのランタイムは、dotnet --list-runtimesコマンドで確認できる。
