Katalog CVE

CVE-2026-90424

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w sterowniku iommu/tegra241-cmdqv występuje wyciek pamięci VINTF0 na ścieżce błędów inicjalizacji. Gdy funkcja tegra241_cmdqv_init_vintf() zawiedzie lub gdy późniejsza prealokacja VCMDQ się nie powiedzie, struktura VINTF0 nie jest prawidłowo zwalniana, a decyzja o zwolnieniu opiera się na błędnie odczytanym stanie własności sprzętowej.

Ocena ryzyka

Wyciek pamięci jądra może prowadzić do stopniowego wyczerpywania zasobów i niestabilności systemu na platformach z tym IOMMU. Dodatkowo wywołania mutex_destroy() i ida_destroy() na niezainicjalizowanych polach mogą powodować uszkodzenie pamięci.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę, która ustala własność VINTF0 na podstawie pola vintf->idx zamiast flagi hyp_own. Jeśli aktualizacja nie jest możliwa, rozważ ograniczenie użycia tego sterownika.

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/tegra241-cmdqv: Fix VINTF0 leak on the init-failure path tegra241_cmdqv_init_structures() allocates VINTF0 with kzalloc_obj(), inits it, and preallocates its logical VCMDQs. Two of its error paths leak. When tegra241_cmdqv_init_vintf() fails it returns before VINTF0 reaches the cmdqv->vintfs[] array, so the devres unwind on probe failure cannot reach it; free it directly there. A later VCMDQ preallocation failure instead leaves VINTF0 published, and so this time the unwind does reach tegra241_cmdqv_remove_vintf(), which then frees it from vintf->hyp_own. But tegra241_vintf_hw_init() sets that flag only afterward, from a HW read-back, so the still-uninited VINTF0 reads as guest-owned and leaks, with mutex_destroy() and ida_destroy() run on fields it never set up. Decide ownership from vintf->idx instead, the index assigned when its id is allocated: idx 0 is the kernel-owned VINTF0, while idx >= 1 marks a guest VINTF. So the in-kernel free decision in tegra241_cmdqv_remove_vintf() and tegra241_vintf_free_lvcmdq() now keys on idx too, and hyp_own stays a pure HW-readback state.

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