| タイトル | 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()を追加し、アクセス不能なデバイスをスキップしてハードロックを回避します。 |
| 想定される影響 | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| 対策 | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年5月6日0:00 |
| 登録日 | 2026年5月15日10:59 |
| 最終更新日 | 2026年5月15日10:59 |
| CVSS3.0 : 警告 | |
| スコア | 5.5 |
|---|---|
| ベクター | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 5.12.19 以上 5.13 未満 |
| Linux Kernel 5.13.4 以上 5.14 未満 |
| Linux Kernel 5.14 |
| Linux Kernel 5.14.1 以上 6.12.77 未満 |
| Linux Kernel 6.13 以上 6.18.17 未満 |
| Linux Kernel 6.19 以上 6.19.6 未満 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年05月15日] 掲載 |
2026年5月15日10:59 |
| 概要 | In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Skip dev-iotlb flush for inaccessible PCIe device without scalable mode PCIe endpoints with ATS enabled and passed through to userspace Commit 4fc82cd907ac ("iommu/vt-d: Don't issue ATS Invalidation With scalable mode disabled or unsupported, a system hard-lock Call Trace: Commit 81e921fd3216 ("iommu/vt-d: Fix NULL domain on device release") Call Trace: Sometimes the endpoint loses connection without a link-down event Call Trace: pci_dev_is_disconnected() only covers safe-removal paths; Since __context_flush_dev_iotlb() is only called on |
|---|---|
| 公表日 | 2026年5月6日21:16 |
| 登録日 | 2026年5月7日4:08 |
| 最終更新日 | 2026年5月6日22:07 |