公開:

【CVE-2024-56669】Linux kernelのiommu/vt-dドライバにキャッシュタグ処理の脆弱性、メモリリークとカーネルクラッシュのリスクに対処

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


記事の要約

  • Linux kernelのiommu/vt-dにATSキャッシュタグ削除に関する脆弱性
  • 複数のVFをvfio-pciで渡す際にメモリリークとカーネルクラッシュが発生
  • cache_tag_unassign_domain()の処理順序変更による修正

Linux kernelのiommu/vt-dドライバにキャッシュタグ処理の脆弱性が存在

Linux kernelの開発チームは2024年12月27日、iommu/vt-dドライバにおけるキャッシュタグ処理の脆弱性を修正したことを発表した。この脆弱性は【CVE-2024-56669】として特定され、ATSを無効化する前にキャッシュタグを適切に削除しないことによってメモリリークやカーネルクラッシュが発生する可能性があることが判明している。[1]

この問題は特に複数のPFから異なるVFをvfio-pciを介して単一のユーザースペースプロセスに渡す場合に顕著となり、CACHE_TAG_DEVTLBタイプのキャッシュタグがドメイン解放後もリストに残存することでuse-after-free条件が発生することが確認された。カーネルメッセージには「BUG: kernel NULL pointer dereference」などのエラーが表示され、システムの安定性に重大な影響を及ぼすことが報告されている。

開発チームは修正としてcache_tag_unassign_domain()の実行タイミングをiommu_disable_pci_caps()の前に移動する変更を実施した。この修正はLinuxカーネルバージョン6.10から6.12.6の間で影響を受けるバージョンに適用され、6.13-rc3以降では既に対策が組み込まれている。システム管理者は該当バージョンを使用している場合、速やかなアップデートが推奨されている。

影響を受けるLinuxカーネルバージョンまとめ

項目 詳細
影響を受けるバージョン バージョン6.10から6.12.5まで
影響を受けない範囲 6.10未満のバージョン、6.12.6以降、6.13-rc3以降
脆弱性ID CVE-2024-56669
修正コミット 9a0a72d3ed919ebe6491f527630998be053151d8
影響 メモリリーク、カーネルクラッシュ、システム不安定化

iommu/vt-dドライバについて

iommu/vt-dドライバとは、IntelのVirtualization Technology for Directed I/O(VT-d)を実装したIOMMUハードウェアを制御するLinuxカーネルのドライバコンポーネントのことを指す。主な特徴として、以下のような点が挙げられる。

  • DMAリマッピングによる仮想マシンのI/Oデバイスアクセス制御
  • PCIパススルーによる仮想マシンへの直接デバイス割り当て
  • アドレス変換サービス(ATS)によるDMAアドレス変換の最適化

このドライバはVT-d対応のIntelプラットフォームでI/Oデバイスの仮想化を実現する重要なコンポーネントとして機能している。ATSキャッシュタグの処理は、I/Oデバイスのアドレス変換を効率的に行うために使用されるが、今回の脆弱性ではこのキャッシュタグの解放タイミングが不適切であることが問題となっている。

Linux kernelのiommu/vt-d脆弱性に関する考察

今回の脆弱性修正は、IOMMUドライバのリソース管理における重要な問題を浮き彫りにしている。ATSキャッシュタグの解放タイミングを適切に制御することで、メモリリークやカーネルクラッシュを防ぐことが可能となったが、同様のリソース管理の問題が他のドライバコンポーネントにも潜んでいる可能性を示唆している。今後はより包括的なリソース解放の検証メカニズムを実装することが望まれるだろう。

また、この問題はマルチテナント環境での仮想化基盤の信頼性に関する課題も提起している。複数のVFを異なるユーザースペースプロセスに割り当てる際のリソース分離をより強固にする必要があり、ドライバレベルでの安全性確保がますます重要になってくることが予想される。将来的にはハードウェアとソフトウェアの両面からの対策が求められるだろう。

今後はIOMMUドライバの開発においてより厳密なリソース管理テストの実施が期待される。特に複雑な構成での動作検証や、エッジケースでのリソース解放シーケンスの確認が重要となり、CI/CDパイプラインにこれらのテストケースを組み込むことで、同様の問題の早期発見が可能になるはずだ。

参考サイト

  1. ^ CVE. 「CVE-2024-56669 | CVE」. https://www.cve.org/CVERecord?id=CVE-2024-56669, (参照 25-01-11).
  2. Intel. https://www.intel.co.jp/content/www/jp/ja/homepage.html

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

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

コメントを残す

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