ASP.NET Coreに権限昇格の脆弱性、修正版あり
ASP.NET Coreの認可の不備により、低い権限を持つ攻撃者がネットワーク越しに権限を引き上げられる脆弱性が公表されました。.NET 8〜11やVisual Studioを使う組織は、対象の洗い出しと修正版への更新を進めてください。
急ぎ度: 早めに
CVSS v3は9.0でcriticalですが、修正版がすでに公開されており、攻撃には低い権限のアカウントと利用者の操作が前提のため、定例の更新を待たず今週中の適用を目安にします。
関係があるか
ASP.NET CoreのWebアプリやAPIを運用している組織、.NET 8.0〜11.0のランタイムを載せたサーバーやコンテナーを持つ組織、開発にVisual Studioを使うチームが対象です。Windows、Linux、Mac OSのいずれも含まれます。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| .NET 8.0(Windows・Linux・Mac OS) | >= 8.0.0, < 8.0.34 | 8.0.34 |
| .NET 9.0(Windows・Linux・Mac OS) | >= 9.0.0, < 9.0.23 | 9.0.23 |
| .NET 10.0(Windows・Linux・Mac OS) | >= 10.0.0, < 10.0.15 | 10.0.15 |
| .NET 11.0(Windows・Linux・Mac OS) | >= 11.0.0-preview.1, < 11.0.0 | 11.0.0 |
| Microsoft Visual Studio 2022 version 17.14 | >= 17.14.0, < 17.14.45 | 17.14.45 |
| Microsoft Visual Studio 2026 version 18.11 | >= 18.11.0, < 18.11.4 | 18.11.4 |
| Microsoft Visual Studio 2026 version 18.12 | < 18.12.0 | 18.12.0 |
| Microsoft.AspNetCore.Http.Connections | >= 1.2.0, < 1.2.14 | 1.2.14 |
確かめ方
- 1サーバーやビルド用の端末で
dotnet --list-runtimesを実行し、Microsoft.AspNetCore.Appの版が上の表の修正版より古くないかを見ます。 - 2プロジェクトごとに
dotnet list packageを実行し、Microsoft.AspNetCore.Http.Connectionsが1.2.14未満になっていないかを確認します。 - 3Visual Studioは、Visual Studio Installerまたは「バージョン情報」で版を確認します。
- 4コンテナーで動かしている場合は、ベースイメージのタグが指す.NETの版を確認します。ランタイムを同梱して配布しているアプリは、ランタイムを入れ替えただけでは直らないため、再ビルドと再配布の対象に加えます。
何が起きたか
ASP.NET Coreの認可の確認に不備があり、すでに何らかの権限を持つ攻撃者が、ネットワーク経由で自分の権限を引き上げられる脆弱性です。Microsoftが2026年11月10日に公表しました。
分類はCWE-863(認可の誤り)です。影響を受けるのは、.NET 8.0から11.0までのランタイム、Visual Studio 2022と2026、そしてパッケージのMicrosoft.AspNetCore.Http.Connectionsです。ランタイムだけでなく、開発環境とアプリが取り込むパッケージも更新の対象になります。
CVSS v3は9.0で、深刻度はcriticalです。ベクターの「スコープ変更」は、脆弱なコンポーネントの外にまで影響が及びうることを示します。
攻撃の流れ
-
1
低い権限を得る
攻撃者がアプリ上で、あらかじめ限られた権限のアカウントを持っています。
-
2
利用者の操作
攻撃の成立には、利用者による何らかの操作が1つ必要です。
-
3
認可の不備を突く
本来は許されない操作が、認可の確認をすり抜けて通ります。
-
4
権限が上がる
攻撃者の権限が、持つべき範囲を超えて引き上げられます。
-
5
広範な被害
情報の閲覧、改ざん、サービス停止のいずれにも至るおそれがあります。
どう悪用されるか
攻撃者はネットワーク経由で仕掛けます。特別な環境は要らず、攻撃の複雑さは低いと評価されています。ただし、あらかじめ低い権限のアカウントを持っていること、利用者の操作が1つ必要なことが前提です。認証なしで誰でも突けるタイプではありません。
悪用されると、権限が引き上げられ、機密性・完全性・可用性のすべてに高い影響が出ると評価されています。スコープ変更もあるため、脆弱なアプリだけでなく、その先でつながる資源にも被害が広がる可能性があります。
アカウントの登録を誰にでも開いているサービスや、社外の協力会社に権限を渡している業務システムは、前提の「低い権限」を満たしやすいと考えられます。筆者は、こうしたアプリから優先して更新するのが現実的だと思っています。
今すぐやること
-
1
使っている.NETとVisual Studioの版を洗い出す
本番・検証・開発の各環境で、ランタイムの版、Visual Studioの版、Http.Connectionsパッケージの版を確認します。外部から使えるアプリや、利用者登録のあるアプリがあるサーバーから先に見ます。
dotnet --list-runtimes -
2
ランタイムを修正版に更新する
.NET 8.0は8.0.34、9.0は9.0.23、10.0は10.0.15、11.0は11.0.0以上に更新します。コンテナーはベースイメージを更新して再デプロイします。
-
3
パッケージを更新して再ビルドする
Microsoft.AspNetCore.Http.Connectionsを1.2.14以上に上げ、アプリを再ビルドして再配布します。ランタイムを同梱して配布しているアプリは、ここで入れ替えます。
-
4
Visual Studioを更新する
17.14系は17.14.45、18.11系は18.11.4、18.12系は18.12.0以上にします。ビルド用サーバーに入れているVisual Studioも忘れずに更新します。
-
5
更新後の版を確認し、Microsoftの告知も読む
更新後にもう一度版を確認し、すべての環境で修正版になっていることを確かめます。回避策の有無など、告知にある追加の案内は、Microsoftのセキュリティ更新ガイドで確認します。
背景
ASP.NET Coreは、社内の業務システム、顧客向けのWebサイト、APIの土台として広く使われるWebフレームワークです。誰がどの操作をしてよいかを判定する認可の処理も、このフレームワークとアプリの両方にまたがって動きます。認可の判定に誤りがあると、ログインできている利用者が、許されていない操作まで通してしまいます。今回の分類であるCWE-863は、まさにこの種類の誤りです。
今回の脆弱性で手間がかかるのは、修正が1か所では済まないことです。ランタイム、開発環境のVisual Studio、アプリが取り込むパッケージの3つに修正版が出ています。サーバーのランタイムだけを更新して、ビルド用の端末やパッケージの版が古いまま残る、という抜けが起きやすい構成です。
よくある質問
Q.一覧にない古い.NETの版を使っていますが、対象外と考えてよいですか。
まだ分かっていないこと
- CVEの記録には、権限昇格が起きる具体的な機能や条件の説明がなく、脆弱性の細部は公表されていません。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| Microsoft.NET 10.0 installed on Linux |
10.0.0 以上 10.0.15 未満→ 10.0.15 |
10.0.15 |
| Microsoft.NET 10.0 installed on Mac OS |
10.0.0 以上 10.0.15 未満→ 10.0.15 |
10.0.15 |
| Microsoft.NET 10.0 installed on Windows |
10.0.0 以上 10.0.15 未満→ 10.0.15 |
10.0.15 |
| Microsoft.NET 11.0 installed on Linux |
11.0.0-preview.1 以上 11.0.0 未満→ 11.0.0 |
11.0.0 |
| Microsoft.NET 11.0 installed on Mac OS |
11.0.0-preview.1 以上 11.0.0 未満→ 11.0.0 |
11.0.0 |
| Microsoft.NET 11.0 installed on Windows |
11.0.0-preview.1 以上 11.0.0 未満→ 11.0.0 |
11.0.0 |
| Microsoft.NET 8.0 installed on Linux |
8.0.0 以上 8.0.34 未満→ 8.0.34 |
8.0.34 |
| Microsoft.NET 8.0 installed on Mac OS |
8.0.0 以上 8.0.34 未満→ 8.0.34 |
8.0.34 |
| Microsoft.NET 8.0 installed on Windows |
8.0.0 以上 8.0.34 未満→ 8.0.34 |
8.0.34 |
| Microsoft.NET 9.0 installed on Linux |
9.0.0 以上 9.0.23 未満→ 9.0.23 |
9.0.23 |
| Microsoft.NET 9.0 installed on Mac OS |
9.0.0 以上 9.0.23 未満→ 9.0.23 |
9.0.23 |
| Microsoft.NET 9.0 installed on Windows |
9.0.0 以上 9.0.23 未満→ 9.0.23 |
9.0.23 |
| MicrosoftMicrosoft Visual Studio 2022 version 17.14 |
17.14.0 以上 17.14.45 未満→ 17.14.45 |
17.14.45 |
| MicrosoftMicrosoft Visual Studio 2026 version 18.11 |
18.11.0 以上 18.11.4 未満→ 18.11.4 |
18.11.4 |
| MicrosoftMicrosoft Visual Studio 2026 version 18.12 |
18.12.0 未満→ 18.12.0 |
18.12.0 |
| MicrosoftMicrosoft.AspNetCore.Http.Connections |
1.2.0 以上 1.2.14 未満→ 1.2.14 |
1.2.14 |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
Incorrect authorization in ASP.NET Core allows an authorized attacker to elevate privileges over a network.
出典: Microsoft Security Response Center Blog NVD
参照URL
- REDHAT Red Hat
- web secure@microsoft.com