.NET 8.0.33・9.0.22・10.0.14の臨時セキュリティ更新|Brotliの脆弱性と上げ方・確かめ方

.NET 8・9・10の臨時セキュリティ更新。Brotliの脆弱性CVE-2026-111497などが直り、直ったバージョンはランタイム8.0.33・9.0.22・10.0.14。まず dotnet --list-runtimes で、入っているランタイムのバージョンを確かめる。ランタイムを入れたサーバーで動かすアプリは、新しいランタイムを入れてから再起動する。自己完結型のアプリは、新しいランタイムで作り直して配り直す。コンテナは、更新された.NETのイメージで作り直して配り直す。NativeAOTのアプリは、SDKを上げて発行し直す。.NETでアプリを動かしている人へ

Microsoftが、毎月の定例とは別に、.NET 8・9・10の臨時(定例外)のセキュリティ更新を出しました。Brotliの展開の脆弱性CVE-2026-111497などを直すもので、直ったバージョンは.NET 8.0.33・9.0.22・10.0.14です。.NET 11はRelease Candidate 3(RC3)で直っています。

Microsoftはできるだけ早く上げることを勧めています。まず、入っているランタイムのバージョンを確かめます。

dotnet --list-runtimes

Microsoft.NETCore.App と Microsoft.AspNetCore.App の行のバージョンが、下の表の「直ったバージョン」より前なら上げます。.NET Frameworkは、CVE-2026-111497の対象外です。

2026年10月27日16時1分(日本時間)時点のMicrosoftの発表の内容です。

目次

結論:上げる先のバージョンと上げ方

.NET 対象のバージョン 直ったバージョン
.NET 8 8.0.0〜8.0.32 ランタイム8.0.33(SDKは8.0.133・8.0.427)
.NET 9 9.0.0〜9.0.21 ランタイム9.0.22(SDKは9.0.123・9.0.320)
.NET 10 10.0.0〜10.0.13 ランタイム10.0.14(SDKは10.0.114・10.0.403)
.NET 11 プレビュー1〜RC2 RC3
  • ランタイムを入れたサーバーで動かすアプリは、新しいランタイムを入れてから、アプリを再起動します
  • 自己完結型(self-contained)のアプリは、新しいランタイムで作り直して配り直します。サーバーのランタイムを上げても、アプリに入っているランタイムは変わりません
  • NativeAOTのアプリは、SDKを上げて発行し直します。マシンのランタイムを上げても、実行ファイルに組み込まれた部分は変わりません
  • コンテナは、更新された.NETのイメージで作り直して配り直します
  • Blazor WebAssemblyを使う.NET 10のアプリは、次の2つのパッケージの参照も10.0.14に上げます。ランタイムを上げるだけでは変わりません
Microsoft.AspNetCore.Components.WebAssembly.Server
Microsoft.AspNetCore.Components.WebAssembly.DevServer

直った脆弱性

CVE(CVSS 3.1) 内容
CVE-2026-111497
(8.1)
Brotliの展開での範囲外への書き込み。メモリを読まれたり書きかえられたりして、情報の漏えい、サービスの停止、権限の昇格につながる
CVE-2026-114148
(7.8)
Linux向けのtar.gzのファイルの所有者の誤り。同じマシンのユーザーが権限を上げられる
CVE-2026-70197
(8.1)
Windowsでの、SocketAsyncEventArgsのメモリ破損。10月13日の更新で直りきっていなかった
CVE-2026-102870
(8.8)
Blazor WebAssemblyのデバッガーの問題(.NET 10・11)。10月13日の更新で直りきっていなかった

MSRCの公開は日本時間10月25日23時です。MSRCは、CVSSの点数とは別に、自社の深刻度の区分でCVE-2026-111497を「Critical(緊急)」とし、悪用された例は確認されていないとしています。

CVE-2026-111497の影響を受けるアプリ

影響を受けるのは、相手から届いたBrotliのデータを、次のどれかで展開するアプリです。

  • ASP.NET Coreのリクエストの展開(request decompression)で、Brotli(br)を有効にしている
  • HttpClientの自動展開(AutomaticDecompression)に、BrotliかAllを入れている
  • System.IO.Compressionの BrotliStream や BrotliDecoder で展開している

上の2つは、初期設定ではオフです。Microsoftは、.NETが入っているだけでは影響を受けないとしています。

すぐ上げられないとき

Microsoftは、上げるまでのあいだ、相手から届いたBrotliのデータを展開しないように勧めています。すでにBrotliの展開を使っているときだけ、設定からBrotliを外します。Microsoftは、使っていない展開の設定を新しく足さないようにも注意を促しています。展開を有効にすると、Brotliを外していても、サービスを止められる危険が出るためです。

ASP.NET Coreでリクエストの展開を使っているときは、設定からbrを外します。gzipとdeflateは残ります。

builder.Services.AddRequestDecompression(options =>
{
    options.DecompressionProviders.Remove("br");
});

HttpClientで自動展開を使っているときは、Brotliを外します。

var handler = new HttpClientHandler
{
    AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
};

どちらも、ふだんのリクエストや応答の扱いが変わるので、試してから入れます。Microsoftがいちばんに勧めているのは、更新を入れることです。

自分の環境を確かめる

入っているランタイムとSDK

dotnet --list-runtimes
dotnet --list-sdks

Microsoft.NETCore.App 8.0.33 のように、名前とバージョン、入っている場所が1行ずつ出ます。.NET 8なら8.0.33、.NET 9なら9.0.22、.NET 10なら10.0.14の行があれば、そのランタイムは直っています。古いランタイムが残っていて、アプリがそちらを使う設定なら、そのアプリは直っていません。

自己完結型のアプリとコンテナは、自分でランタイムを持っているので、このコマンドとは別に確かめます。

Linuxでtar.gzから入れたとき(CVE-2026-114148)

.NET 8・9で対象になるのは、Microsoftが配っているASP.NET Coreのランタイムとtargeting packのtar.gzと、ソースからビルドしたもの(source-build)のすべての種類のtar.gzです。Microsoftが配っているほかのランタイムとSDKのtar.gzは対象外です。.NET 10・11で対象になるのは、ソースからビルドしたものだけです。

新しいtar.gzを今のフォルダーに上書きで展開しても直りません。Microsoftは、アプリを止めてから、直ったtar.gzのチェックサムを確かめ、新しい空のフォルダーに、ファイルの所有者を引き継がずに展開し直すように案内しています。

(
    umask 022
    tar -xzf "$PATCHED_ARCHIVE" -C "$NEW_DOTNET_ROOT" \
        --no-same-owner --no-same-permissions
)

PATCHED_ARCHIVE は直ったtar.gz、NEW_DOTNET_ROOT は新しい空のフォルダーです。展開したら、アプリの設定を新しいフォルダーに向けて、再起動します。古いフォルダーからファイルをコピーしてはいけません。.NETのバージョンの番号だけでは、どのtar.gzから入れたかは分からないので、入れ方もあわせて確かめます。

Python・Node.jsのBrotli

CVE-2026-111497は、Google製のBrotliの不具合で、.NET以外にも影響しています。Python・Node.jsなどの上げる先は、Brotliの脆弱性CVE-2026-111497とは?Python・Node.jsで上げるバージョンと確かめ方にあります。

よくある質問

.NET Frameworkも上げますか?

.NET Frameworkは、CVE-2026-111497の対象外です。

Brotliの展開を使っていなければ、上げなくてよいですか?

CVE-2026-111497で影響を受けるのは、上の3つの使い方のときです。ただ、この更新にはCVE-2026-70197などほかの修正も入っていて、Microsoftはできるだけ早く上げることを勧めています。

10月13日の更新を入れたのに、また上げるのですか?

上げます。CVE-2026-70197とCVE-2026-102870は、10月13日の更新では直りきっていませんでした。今回のバージョンに、その修正が入っています。

CVE-2026-111497のCVSSが8.1と9.2の2つあるのはなぜですか?

付けた組織が違います。8.1はMicrosoftが.NETについてCVSS 3.1で付けた値で、9.2はBrotliを作るGoogleがCVSS 4.0で付けた値です。

公式の発表と資料

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

社内エンジニアとして、SREとセキュリティの仕事をしています。サーバーの構築や運用、クラウド環境の設計にも関わってきました。趣味はゲームと漫画・アニメ。

コメント

コメントする

目次