JVNDB-2026-015619 | |
LinuxのLinux Kernelにおける不特定の脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。iommu/vt-dでは、スケーラブルモードに対応していないアクセス不能なPCIeデバイスに対するdev-iotlbフラッシュをスキップします。ATSが有効でユーザースペースにパススルーされたPCIeエンドポイント(例:QEMU、DPDK)は、リンクが突然取り外されたりリンク障害が発生するとホストがハードロックする可能性があります。コミット4fc82cd907ac("iommu/vt-d: デバイス切断時にATS無効化リクエストを発行しない")はpci_dev_is_disconnected()をdevtlb_invalidation_with_pasid()に追加し、デバイスが安全に取り外されている場合のみATS無効化をスキップしますが、これはIntel IOMMUのスケーラブルモードが有効な場合に限ります。スケーラブルモードが無効または未対応の場合、PCIeエンドポイントのリンクが落ちるとIntel IOMMUは完了しないATS無効化を待ち続け、システムがハードロックします。コールトレースは次の通りです。qi_submit_sync、qi_flush_dev_iotlb、__context_flush_dev_iotlb.part.0、domain_context_clear_one_cb、pci_for_each_dma_alias、device_block_translation、blocking_domain_attach_dev、iommu_deinit_device、__iommu_group_remove_device、iommu_release_device、iommu_bus_notifier、blocking_notifier_call_chain、bus_notify、device_del、pci_remove_bus_device、pci_stop_and_remove_bus_device、pciehp_unconfigure_device、pciehp_disable_slot、pciehp_handle_presence_or_link_change、pciehp_ist。コミット81e921fd3216("iommu/vt-d: デバイス解放時のNULLドメイン修正")はintel_pasid_teardown_sm_context()をintel_iommu_release_device()に追加し、qi_flush_dev_iotlb()を呼び出してPCIeエンドポイントのリンク断時にシステムがハードロックする可能性を修正しました。コールトレースは次の通りです。qi_submit_sync、qi_flush_dev_iotlb、__context_flush_dev_iotlb.part.0、intel_context_flush_no_pasid、device_pasid_table_teardown、pci_pasid_table_teardown、pci_for_each_dma_alias、intel_pasid_teardown_sm_context、intel_iommu_release_device、iommu_deinit_device、__iommu_group_remove_device、iommu_release_device、iommu_bus_notifier、blocking_notifier_call_chain、bus_notify、device_del、pci_remove_bus_device、pci_stop_and_remove_bus_device、pciehp_unconfigure_device、pciehp_disable_slot、pciehp_handle_presence_or_link_change、pciehp_ist。エンドポイントはリンクダウンイベントなしに接続を失うことがあり(例:リンク障害)、プロセスをkill(virsh destroy)するとホストがハードロックします。コールトレースは次の通りです。qi_submit_sync、qi_flush_dev_iotlb、__context_flush_dev_iotlb.part.0、domain_context_clear_one_cb、pci_for_each_dma_alias、device_block_translation、blocking_domain_attach_dev、__iommu_attach_device、__iommu_device_set_domain、__iommu_group_set_domain_internal、iommu_detach_group、vfio_iommu_type1_detach_group、vfio_group_detach_container、vfio_group_fops_release、__fput。pci_dev_is_disconnected()は安全な取り外し経路のみに対応し、pci_device_is_present()はベンダー/デバイスIDの読み取りによってアクセス可能性を検査し、その内部でpci_dev_is_disconnected()を呼び出します。ConnectX-5 (8 GT/s, x2)では約70マイクロ秒かかります。__context_flush_dev_iotlb()は{attach,release}_devのパスでのみ呼ばれる(ホットパスではありません)ため、そこにpci_device_is_present()を追加し、アクセス不能なデバイスをスキップしてハードロックを回避します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/06 |
| 登録日 | 2026/05/15 |
| 最終更新日 | 2026/05/15 |



