GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux iommu/vt-d: stale context-cache entry on alias teardown lets the IOMMU walk freed PASID tables

CVSS 8.8CVE-2026-90240Kernel, userspace & hypervisorcurated

Impact

When a PCI device with DMA aliases is torn down, the context entry for every alias other than the device's own requester ID is cleared in memory but never invalidated in the context cache, so the IOMMU may keep using the stale entry. In scalable mode, intel_pasid_free_table() can then free a PASID directory that the stale entry still references, leaving hardware walking freed memory - a use-after-free driven by DMA rather than by the CPU. On a GPU node this is the path that enforces isolation for passthrough: VFIO assignment of GPUs, NICs and NVMe to tenant VMs or containers repeatedly attaches and detaches devices, and a device that DMA-translates through freed page tables is a memory-corruption and cross-domain-access risk on the host. Exposure requires devices that report DMA aliases, which is common behind PCIe switches and bridges in dense accelerator chassis.

Who can reach it

Local privileged path: anything that attaches and detaches a device from an IOMMU domain - VFIO/passthrough assignment, device reset, driver unbind. A tenant holding a VFIO device through a passthrough workflow can drive repeated teardowns; unprivileged tenants without device-assignment rights cannot reach it.

What to do

Pick up the stable kernel containing the fix (pass the source ID of the entry being torn down to intel_context_flush_no_pasid) and reboot each affected node - no runtime mitigation, so this is a rolling drain-and-reboot across the fleet. Until then, avoid repeated attach/detach cycles of aliasing devices on Intel VT-d hosts in scalable mode.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.