Katalog CVE

CVE-2026-90244

WysokieCVSS 7.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.16%

Percentyl 6 - wyżej niż 6% wszystkich znanych CVE

Streszczenie

W jądrze Linux występuje błąd w podsystemie iommu/dma dotyczący braku blokady wokół listy msi_page_list. W przypadku gdy wiele urządzeń przypisanych do maszyny wirtualnej przez legacy kontener VFIO type1 współdzieli tę samą domenę IOMMU (np. ARM SMMU z IOMMU_RESV_SW_MSI), równoczesne wywołania iommu_dma_get_msi_page() mogą uszkodzić tę listę. Problem został rozwiązany poprzez przywrócenie statycznej blokady msi_prepare_lock.

Ocena ryzyka

Równoległe przetwarzanie przerwań MSI przez wiele urządzeń VFIO może prowadzić do uszkodzenia pamięci jądra, a w konsekwencji do niestabilności systemu lub potencjalnego wykonania kodu. Dotyczy to głównie środowisk wirtualizacyjnych z przypisanymi urządzeniami na IOMMU publikujących IOMMU_RESV_SW_MSI.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę przywracającą blokadę msi_prepare_lock. Jeśli aktualizacja nie jest możliwa, ogranicz przypisywanie wielu urządzeń MSI do tej samej maszyny wirtualnej przez legacy kontener VFIO type1.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: iommu/dma: Restore locking around msi_page_list Unlike a group's default domain, which is always freshly allocated and privately owned (iommu_group_alloc_default_domain()), VFIO type1's legacy container merges any newly attached group into an existing domain whenever their iommu_ops and cache-coherency enforcement match. iommu_dma_get_msi_page() only asserts the caller's own group mutex is held (iommu_group_mutex_assert()). On an IOMMU that publishes IOMMU_RESV_SW_MSI, 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 VFIO_DEVICE_SET_IRQS lands on a different device fd and group mutex, but both devices' domains are the same merged domain, so both can enter iommu_dma_get_msi_page() concurrently and corrupt msi_page_list. commit 288683c92b1a ("iommu: Make iommu_dma_prepare_msi() into a generic operation") dropped the prior msi_prepare_lock on the reasoning that "each iommu_domain 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 (iommufd_sw_map_msi()) take a ctx-wide sw_msi_lock before ever reaching the shared list. VFIO type1 can't mirror that since it dispatches to iommu_dma_sw_msi() which is outside VFIO's jurisdiction.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS