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.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Ubuntu | — | Upgrade linux-image-oem-24.04cUpgrade linux-image-oracleUpgrade linux-image-7.0.0-1010-azureUpgrade linux-image-virtualUpgrade linux-image-realtime-7.0Upgrade linux-image-gcp-64k-7.0Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-7.0Upgrade linux-image-aws-7.0Upgrade linux-image-raspi-realtime-7.0Upgrade linux-image-aws-64k-7.0Upgrade linux-image-aws-64kUpgrade linux-image-oem-24.04Upgrade linux-image-realtimeUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-realtime-64kUpgrade linux-image-awsUpgrade linux-image-oem-24.04dUpgrade linux-image-oem-24.04aUpgrade linux-image-oem-24.04bUpgrade linux-image-7.0.0-1007-oracleUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-7.0.0-1013-nvidia-64kUpgrade linux-image-7.0.0-27-realtimeUpgrade linux-image-7.0.0-1008-awsUpgrade linux-image-oracle-64kUpgrade linux-image-gcp-7.0Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-generic-64k-7.0Upgrade linux-image-7.0.0-1008-aws-64kUpgrade linux-image-generic-7.0Upgrade linux-image-7.0.0-1008-oemUpgrade linux-image-7.0.0-28-generic-64kUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-raspi-7.0Upgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-7.0.0-1014-raspi-realtimeUpgrade linux-image-7.0.0-27-genericUpgrade linux-image-virtual-7.0Upgrade linux-image-gcpUpgrade linux-image-oem-26.04aUpgrade linux-image-nvidia-64kUpgrade linux-image-7.0.0-1014-raspiUpgrade linux-image-ibm-7.0Upgrade linux-image-ibmUpgrade linux-image-7.0.0-1013-nvidiaUpgrade linux-image-oracle-7.0Upgrade linux-image-generic-64kUpgrade linux-image-azureUpgrade linux-image-7.0.0-1007-gcpUpgrade linux-image-7.0.0-1007-gcp-64kUpgrade linux-image-azure-7.0Upgrade linux-image-7.0.0-1007-oracle-64kUpgrade linux-image-7.0.0-27-realtime-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-raspi-realtimeUpgrade linux-image-genericUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-7.0.0-1009-ibmUpgrade linux-image-raspiUpgrade linux-image-nvidiaUpgrade linux-image-gcp-64kUpgrade linux-image-azure-fde-7.0Upgrade 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-nvidia-7.0Upgrade linux-image-oem-26.04 | Jul 1, 2026 | May 27, 2026 |
Prioritise with Active Threat Intelligence
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