Katalog CVE

CVE-2026-80845

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linuxa wykryto podatność na zakleszczenie (deadlock) w mechanizmie keepalive dla NAT w podsystemie xfrm. Funkcja nat_keepalive_work() przegląda tabelę stanów, trzymając blokadę xfrm_state_lock, a następnie w wywołaniu zwrotnym próbuje uzyskać blokadę x->lock. Ścieżka usuwania stanu (xfrm_state_delete) blokuje te same zamki w odwrotnej kolejności, co prowadzi do zakleszczenia AB-BA. Problem został rozwiązany poprzez podzielenie przeglądania na dwie fazy: najpierw zbieranie kandydatów z referencją, a potem przetwarzanie bez zagnieżdżania blokad.

Ocena ryzyka

Zakleszczenie może spowodować zawieszenie się systemu lub awarię usług sieciowych, szczególnie w środowiskach z dużą liczbą równoczesnych operacji na tunelach IPsec i NAT.

Rekomendacja

Zastosuj aktualizację jądra Linux zawierającą poprawkę dla tej podatności. Jeśli nie jest to możliwe, ogranicz ryzyko poprzez unikanie równoczesnego usuwania stanów SA podczas działania keepalive NAT.

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: xfrm: avoid lock inversion in nat keepalive work nat_keepalive_work() walks the state table while xfrm_state_walk() holds net->xfrm.xfrm_state_lock. Its callback then acquires x->lock, which conflicts with the delete path taking the same locks in reverse order via xfrm_state_delete() and __xfrm_state_delete(). This creates an AB-BA deadlock that is reported by lockdep when a NAT keepalive worker races with SA deletion. Fix this by splitting the keepalive walk into two phases. First, collect the candidate states while the walk holds xfrm_state_lock and take a reference on each state. Then, after the walk completes, process each collected state and acquire x->lock without nesting it under xfrm_state_lock.

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