【CVE-2024-56669】Linux kernelのiommu/vt-dドライバにキャッシュタグ処理の脆弱性、メモリリークとカーネルクラッシュのリスクに対処
スポンサーリンク
記事の要約
- 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パイプラインにこれらのテストケースを組み込むことで、同様の問題の早期発見が可能になるはずだ。
参考サイト
- ^ CVE. 「CVE-2024-56669 | CVE」. https://www.cve.org/CVERecord?id=CVE-2024-56669, (参照 25-01-11).
- Intel. https://www.intel.co.jp/content/www/jp/ja/homepage.html
※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。
- 【CVE-2024-56710】Linuxカーネルのcephモジュールでメモリリーク脆弱性、6.6系と6.12系で修正パッチを提供
- 【CVE-2024-56675】Linuxカーネルのbpf_prog関連UAF脆弱性が修正、複数バージョンに影響
- 【CVE-2024-56674】Linux kernelのvirtio-netモジュールに重大な脆弱性、BQLクラッシュの問題が解決へ
- 【CVE-2024-56673】Linux kernelのRISC-V実装におけるvmemmapページテーブル解放処理の脆弱性が発見、カーネルパニックのリスクに注意
- 【CVE-2024-56672】Linuxカーネルのblk-cgroupにUse-After-Free脆弱性、複数バージョンで修正パッチを提供
- Linux kernelのgraniterapids vGPIOドライバでクラッシュ問題を修正、システムの安定性向上へ
- 【CVE-2024-56668】LinuxカーネルのVT-d IOMMUにNULLポインタの脆弱性、メモリリークの危険性も指摘
- 【CVE-2024-56666】Linuxカーネルのdrm/amdkfdモジュールにnullポインタ参照の脆弱性、早急な対応が必要に
- 【CVE-2024-56665】Linuxカーネルのperf_event_detach_bpf_progに深刻な脆弱性、複数バージョンで修正リリース
スポンサーリンク