CVE-2026-43161 in LinuxИнформация

Сводка

по VulDB • 17.05.2026

В ядре Linux устранена следующая уязвимость:

iommu/vt-d: Пропускать очистку dev-iotlb для недоступного PCIe-устройства без режима масштабируемости

Конечные устройства PCIe с включенным ATS и переданные в пространство пользователя (например, QEMU, DPDK) могут вызывать жесткую блокировку (hard-lock) хоста при обрыве их соединения, будь то неожиданное извлечение или ошибка соединения.

Коммит 4fc82cd907ac («iommu/vt-d: Не отправлять запрос ATS Invalidation, когда устройство отключено») добавляет функцию 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 domain при освобождении устройства») добавляет 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

Иногда конечное устройство теряет соединение без события link-down (например, из-за ошибки соединения); завершение процесса (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() проверяет доступность путем чтения идентификаторов вендора/устройства и внутренне вызывает pci_dev_is_disconnected(). На ConnectX-5 (8 GT/s, x2) это занимает ~70 мкс.

Поскольку __context_flush_dev_iotlb() вызывается только на путях {attach,release}_dev (не горячих), добавьте туда pci_device_is_present() для пропуска недоступных устройств и предотвращения жесткой блокировки.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Ответственный

Linux

Резервировать

01.05.2026

Раскрытие

06.05.2026

Модерация

принято

Вход

VDB-361363

EPSS

0.00013

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!