概要
MicrosoftはASP.NET Core Data Protection APIに存在する重大な脆弱性CVE-2026-40372に対して、定例外の緊急セキュリティアップデート「.NET 10.0.7」を公開した。CVSSスコアは9.1と非常に高く、未認証の攻撃者がネットワーク越しに認証クッキーを偽造してSYSTEM権限を取得できる危険性がある。影響を受けるのはMicrosoft.AspNetCore.DataProtectionバージョン10.0.0から10.0.6までで、利用している組織には即時のアップデートが強く求められている。
この脆弱性は2026年4月14日の定例パッチ(Patch Tuesday)で配布された.NET 10.0.6のリリース後、ユーザーがアプリケーションで復号エラーが発生していることを報告したことをきっかけに発覚した。調査の結果、復号失敗の原因となったリグレッションが同時にセキュリティ上の脆弱性を生み出していることが判明し、緊急対応に至った。
技術的な詳細
この脆弱性の根本原因は、マネージド認証暗号化プロセスにおけるHMAC検証タグの計算バグだ。具体的には「マネージド認証暗号化子がペイロードの誤ったバイト列に対してHMAC検証タグを計算し、計算されたハッシュを破棄してしまう」という挙動により、DataProtectionの真正性チェックが機能しなくなる。攻撃者はこれを悪用して偽造ペイロードを作成し、認証クッキー・アンチフォージェリートークン・OIDCステートパラメーターなどの保護データを復号・偽造することが可能となる。
脆弱性の悪用が成立する条件として、The Hacker Newsの報告では3つの要件が挙げられている。(1) アプリケーションがNuGetからMicrosoft.AspNetCore.DataProtection 10.0.6を利用していること、(2) そのNuGetパッケージが実行時にロードされていること、(3) アプリケーションがLinux・macOS・またはWindows以外のOSで動作していることだ。この条件が揃った環境では、攻撃者はセッションの乗っ取りやAPIキー・パスワードリセットトークンの偽造により、最終的にSYSTEM権限を取得できる。
対応策と推奨事項
MicrosoftはMicrosoft.AspNetCore.DataProtectionパッケージを10.0.7へ更新し、アプリケーションを再ビルド・再デプロイするよう呼びかけている。更新後はdotnet --infoコマンドでバージョンを確認することが推奨される。
さらに重要な点として、パッチを適用しただけでは脆弱性が存在していた期間に発行されたトークンはそのまま有効であり続ける。脆弱ウィンドウ内に発行されたセッションやトークンを無効化するには、DataProtectionのキーリングのローテーション(再生成)を合わせて実施する必要がある。既存トークンの悪用リスクを完全に排除するためには、この追加対応も欠かせない。