CVE-2026-97631 EDK2 UEFIファームウェアの脆弱性分析

脆弱性の概要

CVE-2026-97631は、TianoCore EDK2コードベースに存在する深刻なメモリ破損の脆弱性(スコア9.5/10)です。EDK2は、ほとんどのハードウェアベンダーがUEFIファームウェアを構築するために使用する基盤ライブラリです。この欠陥は、PXE Base Codeドライバ内、具体的にはネットワークベースのブートシーケンス中のICMPエラーメッセージ処理に存在します。不正なICMPメッセージを送信することで、ローカルネットワークにアクセス可能な攻撃者はバッファオーバーフローを引き起こし、オペレーティングシステムやセキュアブート、TPM構成証明などのセキュリティ機能が初期化される前に、リング0で任意のコードを実行することが可能になります。

技術的メカニズム

この脆弱性は、NetworkPkg/UefiPxeBcDxeドライバにおける不適切な境界チェックに起因します。ドライバがICMPエラーメッセージを受信すると、そのデータを固定の504バイトのバッファにコピーします。この実装ではメッセージ長の制限が適切に行われておらず、宛先ポインタが誤って進められるため、攻撃者は制御されたデータで隣接するメモリを上書きできます。これはプリブート実行環境(PXE)ブートフェーズ中に発生するため、悪意のあるペイロードはCPUの最高特権レベルで実行され、ハードウェアの信頼の連鎖を実質的に無効化します。

範囲と影響

この脆弱性は、サーバーやエンタープライズ向けハードウェアにおけるEDK2の普及により広範囲に影響を及ぼしますが、悪用にはいくつかの制約があります。

  • ネットワーク要件: 攻撃者は、ターゲットのPXEブートシーケンス中にトラフィックを傍受または注入するために、ローカルネットワークへの低レベルなアクセス権を持っている必要があります。
  • 構成への依存: システムでPXEブートが有効になっており、影響を受けるEDK2ネットワークスタックを使用している必要があります。ローカルディスクドライブからのみブートする一般的な家庭用や小規模オフィス用のデバイスの多くは影響を受けません。
  • ターゲットの特定: メモリのアドレスはハードウェアモデルや構成によって異なるため、悪用を成功させるには特定のファームウェアビルドに合わせてペイロードを調整する必要があります。

業界の対応と緩和策

この脆弱性は、AnthropicのAlex Matrosov氏とGoogleのDan Holmes氏によって発見されました。GitHubのプルリクエストを通じた時期尚早な公開の後、TianoCoreは公式のセキュリティアドバイザリをリリースしました。組織には以下の対応が推奨されます。

  • ファームウェアの更新: EDK2パッチが組み込まれた、ベンダー提供のBIOS/UEFIアップデートを適用してください。
  • 未使用機能の無効化: 運用に不要な場合は、ネットワークブート(PXE)機能を無効にしてください。
  • インフラストラクチャの監視: ブートシーケンス中の不審なICMPトラフィックがないか、ネットワークログを監視してください。

コミュニティの視点

セキュリティコミュニティ内での議論では、現代のファームウェアの複雑さとセキュリティの必要性との間で続く緊張関係が浮き彫りになっています。コメント投稿者は、数百万行のコードを含むUEFIの「フル機能」な性質が、corebootのようなより最小限の代替手段と比較して、巨大な攻撃対象領域を生み出していると指摘しました。一部のオブザーバーは、この脆弱性が技術的に重要である一方で、再起動の強制やローカルネットワークへのアクセスといった悪用のための実用的な要件が、広範囲にわたる自動化された攻撃への利用を制限していると指摘し、深刻度評価に疑問を呈しました。

「近隣のエンドポイントやサーバーを侵害しようとする攻撃者は、このバグを利用して、ブートプロセスがエンドポイントのTPMのような機密コンポーネントにまだアクセスできる段階でプログラムフローを乗っ取ることができる。」 — HD Moore, Chief Research Officer at Dragos.

Sources

関連