公開:

【CVE-2024-56761】LinuxカーネルのCPU間接分岐トラッカーに脆弱性、WFE状態の制御不備が発覚

text: XEXEQ編集部
(記事は執筆時の情報に基づいており、現在では異なる場合があります)


記事の要約

  • Linuxカーネルでx86/fredの脆弱性が修正
  • CPU間接分岐トラッカーのWFE状態のクリアが必要
  • Linux 6.6系で影響を受けるバージョンに対応

Linuxカーネルのx86/fredにおけるWFE状態の制御不備

Linuxカーネルにおいて、x86/fredのCPU間接分岐トラッカー(IBT)に関する脆弱性【CVE-2024-56761】が2025年1月6日に公開された。間接分岐命令によってIBTがWAIT_FOR_ENDBRANCH(WFE)状態に設定され、WFE状態が命令境界を超えて維持されることで、不適切な命令が検出された際にCPUが#CP障害を引き起こす問題が発見されたのだ。[1]

カーネルのIBT ENDBRセルフテストにおいて意図的に#CPを発生させる場合、中断されたコンテキストのWFE状態をクリアして実行を継続させる必要性が明らかになった。FREDがエントリースタック上でWFE状態を保存および復元する仕組みを提供しているため、ソフトウェアによるWFE状態のクリアが不可欠となっている。

この脆弱性に対する修正は、ibt_clear_fred_wfe()関数および!ibt_fatalコードパスにおいてWFE状態をクリアすることで実装された。他の状況でWFE状態を破壊することはセキュリティ上の重大な問題となるため、適切な制御が必要とされている。

Linux 6.6の影響を受けるバージョンまとめ

項目 詳細
影響を受けるバージョン Linux 6.6
パッチ適用前のコミット a5f6c2ace9974adf92ce65dacca8126d90adabfe
パッチ適用後のコミット 151447859d6fb0dcce8259f0971c6e94fb801661
影響を受けないバージョン 6.6.70以降、6.12.8以降、6.13-rc5以降

CPU間接分岐トラッカーについて

CPU間接分岐トラッカー(IBT)とは、プロセッサにおける制御フロー完全性を保護するためのセキュリティ機能のことを指す。主な特徴として、以下のような点が挙げられる。

  • 間接分岐命令の制御フローを監視し追跡
  • 不正な分岐先を検出して#CP例外を発生
  • ENDBRANCHマーカーによる正当な分岐先の識別

CPU間接分岐トラッカーはWAIT_FOR_ENDBRANCH(WFE)状態を通じて命令実行の制御を行っており、LinuxカーネルのFRED機能と連携して動作している。FREDはWFE状態の保存と復元を行うためのスペースをエントリースタック上に確保しており、セキュリティ機能の一部として重要な役割を果たしている。

Linuxカーネルのx86/fred脆弱性に関する考察

今回のx86/fredにおける脆弱性修正は、CPU間接分岐トラッカーの状態管理における重要な問題を浮き彫りにしている。特にFRED機能がWFE状態を保存・復元する仕組みを提供していることから、ソフトウェア側での適切な状態管理が不可欠であり、セキュリティ上の新たな考慮点として認識すべきだろう。

今後は同様の状態管理に関する問題が他のコンポーネントでも発見される可能性があり、システム全体での包括的な検証が必要になってくる。特にカーネルの自己診断機能やテストケースにおいて、状態の保存・復元に関する厳密なチェックが求められるだろう。

また、FREDのような高度な機能を活用する際には、ハードウェアとソフトウェアの境界における状態管理の重要性がより一層増していく。今後のLinuxカーネル開発においては、これらの教訓を活かした設計指針の確立と、より堅牢な実装手法の確立が期待される。

参考サイト

  1. ^ CVE. 「CVE-2024-56761 | CVE」. https://www.cve.org/CVERecord?id=CVE-2024-56761, (参照 25-01-13).

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「セキュリティ」に関するコラム一覧「セキュリティ」に関するニュース一覧
アーカイブ一覧
セキュリティに関する人気タグ
セキュリティに関するカテゴリ
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。