Katalog CVE

CVE-2026-89548

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.13%

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

Streszczenie

W jądrze Linux funkcja sunrpc_destroy_cache_detail() anuluje globalny cache_cleaner tylko gdy cache_list jest pusty, co nie ma miejsca podczas sprzątania per-netns. Prowadzi to do use-after-free, gdy cache_clean() używa wskaźnika do zwolnionego cache_detail.

Ocena ryzyka

Może prowadzić do użycia zwolnionej pamięci, potencjalnie umożliwiając eskalację uprawnień lub awarię jądra. Wymaga jednak lokalnego dostępu do operacji sieciowych w przestrzeniach nazw.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę, która zawsze wywołuje cancel_delayed_work_sync() przed zwolnieniem cache_detail. Sprawdź systemy korzystające z NFS/SUNRPC w kontenerach lub przestrzeniach nazw sieciowych.

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: SUNRPC: always drain cache_cleaner before destroying a cache_detail sunrpc_destroy_cache_detail() only cancels the global cache_cleaner delayed_work when cache_list is empty. During per-netns teardown cache_list is never empty because init_net's caches remain registered, so the cancel never fires. After unlink, the caller proceeds to cache_destroy_net() which kfrees the cache_detail while cache_clean() may still hold a dangling pointer to it. The result is a use-after-free: cache_dequeue() takes cd->queue_lock on freed memory, and cache_put() dereferences cd->cache_put as a function pointer from freed slab. Drop the list_empty guard so that cancel_delayed_work_sync() always runs, ensuring any in-flight cache_clean() completes before the cache_detail is freed. Re-arm the cleaner afterwards if other caches are still registered.

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