UBUNTU-CVE-2026-90244: High severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: iommu/dma: Restore locking around msipagelist Unlike a group's default domain, which is always freshly allocated and privately owned (iommugroupallocdefaultdomain()), VFIO type1's legacy container merges any newly attached group into an existing domain whenever their iommuops and cache-coherency enforcement match. iommudmagetmsipage() only asserts the caller's own group mutex is held (iommugroupmutexassert()). On an IOMMU that publishes IOMMURESVSWMSI, e.g. ARM SMMU, a VM with two such devices assigned through the legacy container can have their guest drivers probe and allocate MSIs in parallel; each host-side VFIODEVICESETIRQS lands on a different device fd and group mutex, but both devices' domains are the same merged domain, so both can enter iommudmagetmsipage() concurrently and corrupt msipagelist. commit 288683c92b1a ("iommu: Make iommudmapreparemsi() into a generic operation") dropped the prior msipreparelock on the reasoning that "each iommudomain is unique to a group," which holds for default domains but not this VFIO type1 case. Restore the static lock, since it's only guarding a corner case and will likely never be contended. iommufd avoids the equivalent problem by having its own callers (iommufdswmapmsi()) take a ctx-wide swmsilock before ever reaching the shared list. VFIO type1 can't mirror that since it dispatches to iommudmaswmsi() which is outside VFIO's jurisdiction.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
Restore the static locking around msi_page_list so concurrent iommu_dma_get_msi_page() calls on shared merged domains are serialized.
Event History
Frequently Asked Questions
Which deployments are exposed to the described race condition?
The described path requires VFIO type1's legacy container to merge at least two assigned device groups into the same IOMMU domain. It also requires an IOMMU that advertises IOMMU_RESV_SW_MSI, such as ARM SMMU, and a VM with two such assigned devices.
What activity triggers the corruption?
Guest drivers must allocate MSIs concurrently for the two assigned devices. The corresponding host VFIO_DEVICE_SET_IRQS operations occur through different device file descriptors and group mutexes while operating on the shared merged domain's msi_page_list.
What is the practical impact if exploitation succeeds?
Concurrent access can corrupt the shared msi_page_list. The provided severity vector rates the issue as high and indicates low-privilege local access with high confidentiality, integrity, and availability impact.