Katalog CVE

CVE-2026-53153

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.10%

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

Streszczenie

W jądrze Linux wykryto podatność w mechanizmie list_lru podczas reparentingu (przenoszenia) list między grupami cgroup. Błąd polega na tym, że wpis w tablicy xarray dla umierającej grupy memcg jest usuwany przed opróżnieniem jej list per-węzeł, co umożliwia równoczesnym operacjom list_lru_del() działanie na tych samych elementach pod różnymi blokadami, prowadząc do uszkodzenia struktury listy.

Ocena ryzyka

Ryzyko polega na możliwym uszkodzeniu pamięci jądra (kernel memory corruption) w wyniku wyścigu (race condition), co może prowadzić do niestabilności systemu, awarii (kernel panic) lub potencjalnie do eskalacji uprawnień.

Rekomendacja

Należy niezwłocznie zaktualizować jądro Linux do wersji zawierającej poprawkę, która odwraca kolejność operacji: najpierw reparenting list, a następnie czyszczenie wpisu xarray.

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: mm/list_lru: drain before clearing xarray entry on reparent memcg_reparent_list_lrus() clears the dying memcg's xarray entry with xas_store(&xas, NULL) before reparenting its per-node lists into the parent. This opens a window where a concurrent list_lru_del() arriving for the dying memcg sees xa_load() == NULL, walks to the parent in lock_list_lru_of_memcg(), takes the parent's per-node lock, and calls list_del_init() on an item still physically linked on the dying memcg's list. If another in-flight thread holds the dying memcg's per-node lock at the same moment (another list_lru_del, or a list_lru_walk_one running an isolate callback), both threads modify ->next/->prev pointers on the same physical list under different locks. Adjacent items can corrupt each other's links. Fix it by reversing the order: reparent each per-node list and mark the child's list lru dead and then clear the xarray entry. Any concurrent list_lru op that finds the still-set xarray entry either takes the dying memcg's per-node lock (synchronizing with the drain) or sees LONG_MIN and walks to the parent, where the items now live.

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