Katalog CVE

CVE-2026-89988

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

Streszczenie

W jądrze Linux funkcja __within_kprobe_blacklist() przegląda listę kprobe_blacklist bez trzymania kprobe_mutex. Gdy moduł jest usuwany, wpisy są natychmiast zwalniane, co może prowadzić do użycia po zwolnieniu (use-after-free) w równoczesnym wywołaniu within_kprobe_blacklist().

Ocena ryzyka

Użycie po zwolnieniu może pozwolić na wykonanie kodu w kontekście jądra lub spowodować awarię systemu. Wymaga to jednak możliwości ładowania/usuwania modułów i równoczesnego wywołania funkcji.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę, która chroni kprobe_blacklist za pomocą RCU.

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: kprobes: Protect kprobe_blacklist with RCU __within_kprobe_blacklist() traverses kprobe_blacklist without holding kprobe_mutex. When a module is unloaded, kprobe_remove_area_blacklist() removes blacklist entries and immediately frees them with kfree(). A concurrent call to within_kprobe_blacklist() can therefore dereference freed memory. Furthermore, within_kprobe_blacklist() can be called in atomic or non-preemptible contexts where the sleeping kprobe_mutex cannot be taken. Protect kprobe_blacklist with RCU. Use guard(rcu)() and list_for_each_entry_rcu() for traversal, list_add_tail_rcu() for insertions, list_del_rcu() for deletions, and kfree_rcu() to reclaim entries safely after a grace period.

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