CVE-2026-43130

In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Flush dev-IOTLB only when PCIe device is accessible in scalable mode Commit 4fc82cd907ac ("iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected") relies on pci_dev_is_disconnected() to skip ATS invalidation for safely-removed devices, but it does not cover link-down caused by faults, which can still hard-lock the system. For example, if a VM fails to connect to the PCIe device, "virsh destroy" is executed to release resources and isolate the fault, but a hard-lockup occurs while releasing the group fd. Call Trace: qi_submit_sync qi_flush_dev_iotlb intel_pasid_tear_down_entry 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 Although pci_device_is_present() is slower than pci_dev_is_disconnected(), it still takes only ~70 µs on a ConnectX-5 (8 GT/s, x2) and becomes even faster as PCIe speed and width increase. Besides, devtlb_invalidation_with_pasid() is called only in the paths below, which are far less frequent than memory map/unmap. 1. mm-struct release 2. {attach,release}_dev 3. set/remove PASID 4. dirty-tracking setup The gain in system stability far outweighs the negligible cost of using pci_device_is_present() instead of pci_dev_is_disconnected() to decide when to skip ATS invalidation, especially under GDR high-load conditions.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

11 Nov 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: iommu/vt-d: Vaciar dev-IOTLB solo cuando el dispositivo PCIe es accesible en modo escalable El commit 4fc82cd907ac (’iommu/vt-d: No emitir solicitud de invalidación ATS cuando el dispositivo está desconectado’) se basa en pci_dev_is_disconnected() para omitir la invalidación ATS para dispositivos retirados de forma segura, pero no cubre la caída de enlace causada por fallos, lo que aún puede bloquear el sistema de forma irreversible. Por ejemplo, si una VM no logra conectarse al dispositivo PCIe, se ejecuta ’virsh destroy’ para liberar recursos y aislar el fallo, pero se produce un bloqueo irreversible mientras se libera el fd del grupo. Traza de llamadas: qi_submit_sync qi_flush_dev_iotlb intel_pasid_tear_down_entry 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 Aunque pci_device_is_present() es más lento que pci_dev_is_disconnected(), aún tarda solo ~70 µs en un ConnectX-5 (8 GT/s, x2) y se vuelve aún más rápido a medida que aumentan la velocidad y el ancho de PCIe. Además, devtlb_invalidation_with_pasid() se llama solo en las rutas siguientes, las cuales son mucho menos frecuentes que el mapeo/desmapeo de memoria. 1. Liberación de mm-struct 2. {attach,release}_dev 3. Establecer/eliminar PASID 4. Configuración de seguimiento de suciedad La ganancia en estabilidad del sistema supera con creces el costo insignificante de usar pci_device_is_present() en lugar de pci_dev_is_disconnected() para decidir cuándo omitir la invalidación ATS, especialmente bajo condiciones de alta carga de GDR.

Information

Published : 2026-05-06 12:16

Updated : 2026-11-11 21:10


NVD link : CVE-2026-43130

Mitre link : CVE-2026-43130

CVE.ORG link : CVE-2026-43130


JSON object : View

Products Affected

linux

  • linux_kernel