{"id":25653,"date":"2026-09-18T04:31:41","date_gmt":"2026-09-17T20:31:41","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90244"},"modified":"2026-09-18T04:31:41","modified_gmt":"2026-09-17T20:31:41","slug":"cve-2026-90244","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90244","title":{"rendered":"CVE-2026-90244 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\niommu\/dma: Restore lo"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>iommu\/dma: Restore locking around msi_page_list<\/p>\n<p>Unlike a group&#8217;s default domain, which is always freshly allocated<br \/>\nand privately owned (iommu_group_alloc_default_domain()), VFIO type1&#8217;s<br \/>\nlegacy container merges any newly attached group into an existing<br \/>\ndomain whenever their iommu_ops and cache-coherency enforcement match.<\/p>\n<p>iommu_dma_get_msi_page() only asserts the caller&#8217;s own group mutex is<br \/>\nheld (iommu_group_mutex_assert()). On an IOMMU that publishes<br \/>\nIOMMU_RESV_SW_MSI, e.g. ARM SMMU, a VM with two such devices assigned<br \/>\nthrough the legacy container can have their guest drivers probe and<br \/>\nallocate MSIs in parallel; each host-side VFIO_DEVICE_SET_IRQS lands<br \/>\non a different device fd and group mutex, but both devices&#8217; domains<br \/>\nare the same merged domain, so both can enter<br \/>\niommu_dma_get_msi_page() concurrently and corrupt msi_page_list.<\/p>\n<p>commit 288683c92b1a (&#8220;iommu: Make iommu_dma_prepare_msi() into a<br \/>\ngeneric operation&#8221;) dropped the prior msi_prepare_lock on the<br \/>\nreasoning that &#8220;each iommu_domain is unique to a group,&#8221; which holds<br \/>\nfor default domains but not this VFIO type1 case. Restore the static<br \/>\nlock, since it&#8217;s only guarding a corner case and will likely never<br \/>\nbe contended.<\/p>\n<p>iommufd avoids the equivalent problem by having its own callers<br \/>\n(iommufd_sw_map_msi()) take a ctx-wide sw_msi_lock before ever<br \/>\nreaching the shared list. VFIO type1 can&#8217;t mirror that since it<br \/>\ndispatches to iommu_dma_sw_msi() which is outside VFIO&#8217;s jurisdiction.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>iommu\/dma: Restore locking around msi_page_list<\/p>\n<p>Unlike a group&#8217;s default domain, which is always freshly allocated<br \/>\nand privately o<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25653","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}