CVE-2026-43161Linux内核的iommu/vt-d驱动模块存在一个安全漏洞。当启用了ATS(地址转换服务)的PCIe设备在链路断开(例如意外拔出或链路故障)时,如果系统未启用Intel IOMMU可扩展模式,内核仍会尝试执行设备IOTLB刷新。由于设备已断开连接,该刷新操作无法完成,导致IOMMU硬件无限等待,最终造成主机系统硬死锁。此漏洞允许本地低权限攻击者通过触发设备断开连接事件,导致整个系统拒绝服务。
该漏洞源于Intel VT-d IOMMU驱动在处理PCIe设备断开连接时的逻辑缺陷。当启用了ATS的PCIe端点设备被分配给用户空间(如通过VFIO用于QEMU或DPDK),且设备物理链路发生故障或被意外移除时,系统尝试清理IOMMU上下文。在未启用Intel IOMMU可扩展模式的情况下,内核调用`qi_flush_dev_iotlb`函数发送ATS失效请求。由于链路断开,硬件无法响应,但代码未能像可扩展模式那样检查设备可达性。这导致`qi_submit_sync`无限期阻塞,引发主机硬死锁。攻击者可通过控制虚拟机或用户进程触发设备断开逻辑导致宿主机崩溃。