In the Linux kernel, the following vulnerability has been resolved:
vfio/cdx: Serialize VFIO_DEVICE_SET_IRQS with a per-device mutex
vfio_cdx_set_msi_trigger() reads vdev->config_msi and operates on the vdev->cdx_irqs array based on its value, but provides no serialization against concurrent VFIO_DEVICE_SET_IRQS ioctls. Two callers can race such that one observes config_msi as set while another clears it and frees cdx_irqs via vfio_cdx_msi_disable(), resulting in a use-after-free of the cdx_irqs array.
Add a cdx_irqs_lock mutex to struct vfio_cdx_device and acquire it in vfio_cdx_set_msi_trigger(), which is the single chokepoint through which all updates to config_msi, cdx_irqs, and msi_count flow, covering both the ioctl path and the close-device cleanup path. This keeps the test of config_msi atomic with the subsequent enable, disable, or trigger operations.
Drop the pre-call !cdx_irqs test from vfio_cdx_irqs_cleanup() as part of this change: the optimization it provided is redundant with the !config_msi early-return inside vfio_cdx_msi_disable(), and leaving the test in place would be an unsynchronized read of state the new lock is meant to protect.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Ubuntu | — | Upgrade linux-image-oem-7.0Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-oem-24.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-generic-hwe-26.04Upgrade linux-image-oem-24.04bUpgrade linux-image-aws-7.0Upgrade linux-image-7.0.0-1008-aws-64kUpgrade linux-image-7.0.0-28-generic-64kUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-aws-64kUpgrade linux-image-aws-64k-7.0Upgrade linux-image-oem-24.04aUpgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-oem-24.04cUpgrade linux-image-7.0.0-1010-azureUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-virtual-7.0Upgrade linux-image-gcp-7.0Upgrade linux-image-generic-7.0Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-7.0.0-27-genericUpgrade linux-image-7.0.0-1008-oemUpgrade linux-image-7.0.0-1013-nvidia-64kUpgrade linux-image-oracle-64kUpgrade linux-image-gcpUpgrade linux-image-realtime-7.0Upgrade linux-image-raspi-7.0Upgrade linux-image-virtualUpgrade linux-image-realtimeUpgrade linux-image-realtime-64kUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-awsUpgrade linux-image-generic-64k-7.0Upgrade linux-image-7.0.0-1008-awsUpgrade linux-image-oem-24.04dUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-7.0.0-1014-raspi-realtimeUpgrade linux-image-7.0.0-1007-oracleUpgrade linux-image-7.0.0-27-realtimeUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-azure-fdeUpgrade linux-image-7.0.0-28-genericUpgrade linux-image-7.0.0-27-generic-64kUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-7.0.0-1013-nvidiaUpgrade linux-image-7.0.0-1009-ibmUpgrade linux-image-genericUpgrade linux-image-nvidia-7.0Upgrade linux-image-azure-fde-7.0Upgrade linux-image-7.0.0-1014-raspiUpgrade linux-image-azure-7.0Upgrade linux-image-7.0.0-1007-oracle-64kUpgrade linux-image-azureUpgrade linux-image-7.0.0-1007-gcp-64kUpgrade linux-image-7.0.0-1007-gcpUpgrade linux-image-ibmUpgrade linux-image-ibm-7.0Upgrade linux-image-generic-64kUpgrade linux-image-7.0.0-27-realtime-64kUpgrade linux-image-raspi-realtimeUpgrade linux-image-oracle-7.0Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-26.04aUpgrade linux-image-nvidia-64kUpgrade linux-image-raspiUpgrade linux-image-oem-26.04Upgrade linux-image-nvidiaUpgrade linux-image-gcp-64k | Jul 1, 2026 | May 27, 2026 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub