GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel vfio/pci: freed MSI permission table left in the device, giving use-after-free and double free

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

Impact

When init_pci_cap_msi_perm() fails with -ENOMEM, vfio_msi_cap_len() frees vdev->msi_perm but leaves the freed pointer stored in the per-device struct, which persists across open/close cycles. The next open reuses the freed object and MSI config accesses call its freed readfn/writefn function pointers; a later vfio_config_free() frees it again. The report includes a KASAN slab-use-after-free at vfio_pci_config_rw_single() reached from pread(), and a fatal double free on close. vfio-pci is exactly how GPUs and NICs are passed through to VMs, so this sits on the path a tenant's device-assignment stack uses; a local user or process holding the vfio device fd that can drive an allocation failure gets kernel control-flow over freed function pointers and can panic the node. The fix NULLs the pointer after kfree().

Who can reach it

Local user or VMM process holding an open vfio-pci device fd (typically a passthrough host or a container granted /dev/vfio). Requires the ability to force the -ENOMEM path during device open; no remote access.

What to do

Update to a stable kernel carrying the linked commits and reboot the passthrough hosts after evacuating the VMs that hold the assigned devices. Reducing exposure means restricting who can open /dev/vfio/* until the reboot. The record lists commits only, no fixed version numbers.

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.