CVE-2026-46036
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
27/05/2026
Last modified:
16/06/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
vfio/cdx: Serialize VFIO_DEVICE_SET_IRQS with a per-device mutex<br />
<br />
vfio_cdx_set_msi_trigger() reads vdev->config_msi and operates on the<br />
vdev->cdx_irqs array based on its value, but provides no serialization<br />
against concurrent VFIO_DEVICE_SET_IRQS ioctls. Two callers can race<br />
such that one observes config_msi as set while another clears it and<br />
frees cdx_irqs via vfio_cdx_msi_disable(), resulting in a use-after-free<br />
of the cdx_irqs array.<br />
<br />
Add a cdx_irqs_lock mutex to struct vfio_cdx_device and acquire it in<br />
vfio_cdx_set_msi_trigger(), which is the single chokepoint through<br />
which all updates to config_msi, cdx_irqs, and msi_count flow, covering<br />
both the ioctl path and the close-device cleanup path. This keeps the<br />
test of config_msi atomic with the subsequent enable, disable, or<br />
trigger operations.<br />
<br />
Drop the pre-call !cdx_irqs test from vfio_cdx_irqs_cleanup() as part<br />
of this change: the optimization it provided is redundant with the<br />
!config_msi early-return inside vfio_cdx_msi_disable(), and leaving the<br />
test in place would be an unsynchronized read of state the new lock is<br />
meant to protect.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.10 (including) | 6.12.86 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.27 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 7.0.4 (excluding) |
To consult the complete list of CPE names with products and versions, see this page



