Microsoft が ASP.NET Core の権限昇格脆弱性 CVE-2026-40372 にパッチ
目次
Microsoft は 4 月 21 日、ASP.NET Core の Data Protection API における暗号署名検証の不具合を修正する緊急パッチをリリースした。
CVE-2026-40372 として追跡される本脆弱性は CVSS 9.1 と評価され、未認証での権限昇格が可能になる。
脆弱性の概要
CVE-2026-40372 は Microsoft.AspNetCore.DataProtection パッケージの Managed Authenticated Encryptor における暗号化検証ロジックの回帰に由来する。
| 項目 | 内容 |
|---|---|
| 脆弱性種別 | 暗号署名の不適切な検証(CWE-347) |
| CVSS v3.1 スコア | 9.1 |
| 攻撃ベクトル | ネットワーク(認証不要) |
| 攻撃複雑性 | 低(追加条件なし) |
| 影響スコープ | 同一スコープ |
| 機密性への影響 | 高(トークン・認証情報の窃取) |
| 完全性への影響 | 高(トークン偽造) |
| 可用性への影響 | なし |
根本原因と攻撃メカニズム
Data Protection API の HMAC 検証ロジックは、次の3点で破綻している。
| 不具合 | 内容 |
|---|---|
| HMAC 計算範囲の誤り | ペイロードの一部だけを対象にハッシュ化していた |
| ハッシュ値の破棄 | 計算した HMAC を検証で使わずに捨てていた |
| 検証ルーチンの欠落 | MAC 検証をスキップできる遷移パスが残っていた |
これらが重なることで、攻撃者はパディングオラクル攻撃を用いて保護されたペイロードを復号化し、不正な認証トークンを生成・発行できる状態になっていた。
想定される攻撃シナリオ
| 攻撃 | 影響 |
|---|---|
| 認証クッキーの偽造 | 既存クッキーを復号化して任意ユーザーになりすまし |
| アンチフォージェリ(CSRF)トークンの生成 | フォーム送信時の保護を回避し不正操作を実行 |
| 権限昇格 | 管理者権限を持つトークンを生成して SYSTEM 相当のアクセスを獲得 |
| API キー・パスワードリセットトークンの偽造 | 長期有効なトークンを攻撃者が任意に発行 |
影響を受けるバージョン
| コンポーネント | 脆弱版 | 修正版 | 備考 |
|---|---|---|---|
| Microsoft.AspNetCore.DataProtection | 10.0.0 〜 10.0.6 | 10.0.7 以降 | 全プラットフォーム |
| .NET 8.0.x | 影響なし | — | 不具合コードパスなし |
| .NET 9.0.x | 影響なし | — | 不具合コードパスなし |
この回帰は .NET 10.0 の初期開発フェーズで混入したもので、.NET 8.x・9.x の servicing ブランチには存在しない。
そのため対象となるのは、Linux など非 Windows 環境で .NET 10.0 を実行中のアプリケーション。Windows ホストで動かしている ASP.NET Core 実行環境は、今回の回帰を踏まない構成になっている。
パッチと対応方法
| 項目 | 内容 |
|---|---|
| 対応バージョン | Microsoft.AspNetCore.DataProtection 10.0.7 以降 |
| リリース方式 | Out-of-band(臨時セキュリティ更新) |
| 発行日 | 2026 年 4 月 21 日 |
実装手順
# NuGet パッケージの更新
dotnet package update Microsoft.AspNetCore.DataProtection --version 10.0.7
# Visual Studio の Package Manager から
Update-Package Microsoft.AspNetCore.DataProtection -Version 10.0.7
適用後の確認
dotnet list package --include-transitive | grep DataProtection
# Microsoft.AspNetCore.DataProtection が 10.0.7 以降になっていることを確認
パッケージを差し替えただけでは旧コードのまま動き続けるプロセスが残るため、アプリケーション全体を再デプロイする。
実務で確認すべき点
既存トークンの有効性
パッチ適用後でも、脆弱期間中に発行された長期有効トークンは有効期限内なら受け入れられてしまう。
そのため、その期間に発行されたセッションクッキー、API キー、永続トークンの類はすべて再発行する。
Data Protection キーのローテーション
| 手順 | 内容 |
|---|---|
| 監査 | 〜2026 年 4 月 21 日に発行された長期有効トークンを洗い出す |
| キー再生成 | 新しい Data Protection キーを生成 |
| 既存トークン無効化 | 旧キーで発行されたトークンを失効させ、ユーザーに再認証を強制 |
| 有効期限の見直し | セッション有効期限を短縮(例: 24 時間以下)するか検討 |
セキュリティログの確認
脆弱性悪用の痕跡を次の観点で見直す。
- Web サーバーログで、攻撃者 IP から管理者領域への異常アクセスが残っていないか
- セキュリティイベントログで、ユーザー権限が急に変更されていないか
- 認証失敗ログで、オラクル攻撃の試行を示す大量の失敗が見当たらないか
現状と発見の経緯
実環境での悪用は現時点で報告されていない。ただし CVSS 9.1 の重大度を踏まえると、PoC や攻撃コードが公に出回るのは時間の問題と見たほうがいい。
発見者は匿名の研究者で、Microsoft への事前通知を経たうえでパッチがリリースされた。氏名や所属は公開情報からは確認できない。