Katalog CVE

CVE-2026-89972

KrytyczneCVSS 9.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w funkcji nvme_alloc_ns() ścieżka błędu usuwa namespace z listy rodzeństwa za pomocą list_del_rcu(), ale nie czeka na zakończenie czytelników SRCU przed zwolnieniem struktury namespace. Współbieżny czytelnik w kodzie multipath może wciąż trzymać referencję do ns w momencie wywołania kfree(ns), co prowadzi do use-after-free.

Ocena ryzyka

Może prowadzić do uszkodzenia pamięci jądra lub paniki systemu, zwłaszcza w konfiguracjach NVMe z multipath. W środowiskach z wieloma ścieżkami do tego samego urządzenia ryzyko wystąpienia błędu jest zwiększone.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę dodającą synchronize_srcu() w ścieżce błędu nvme_alloc_ns(). Jeśli aktualizacja nie jest możliwa, rozważ ograniczenie konfiguracji multipath NVMe.

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: nvme: add missing SRCU grace period in error path nvme_alloc_ns() error path at out_unlink_ns removes ns from the namespace head siblings list with list_del_rcu(&ns->siblings) but does not wait for SRCU readers before freeing the namespace struct. Multipath code iterates the head->list under srcu_read_lock() in nvme_find_path() and nvme_mpath_revalidate_paths(), so a concurrent reader can still hold a reference to ns when kfree(ns) runs. The normal removal path in nvme_ns_remove() correctly calls synchronize_srcu(&ns->head->srcu) after list_del_rcu() to wait for in-progress readers. Add the same grace period in the error path.

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