Katalog CVE

CVE-2026-97608

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

Streszczenie

W jądrze Linuxa wykryto podatność w module netfilter nf_log, dotyczącą wyścigu (race condition) podczas wyrejestrowywania loggerów. Kolejność operacji powoduje, że po wyczyszczeniu stanu per-net, ale przed wyrejestrowaniem globalnego backendu, możliwe jest ponowne powiązanie loggera przez sysctl lub netlink, co prowadzi do użycia po zwolnieniu (use-after-free).

Ocena ryzyka

Atakujący z uprawnieniami do zapisu przez sysctl lub netlink może doprowadzić do naruszenia integralności pamięci jądra, co może skutkować eskalacją uprawnień lub awarią systemu (paniką jądra).

Rekomendacja

Zaleca się natychmiastowe zastosowanie oficjalnej łatki od dystrybutora jądra Linux, która zmienia kolejność wyrejestrowywania loggerów (najpierw globalne backendy, potem stan per-net). Należy również zrestartować system po aktualizacji.

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: netfilter: nf_log: unregister loggers before per-net teardown nf_log_syslog and nfnetlink_log unregister their per-network namespace operations before unregistering their global logger backends. This leaves a window where a sysctl or netlink writer can rebind the still- registered logger after the per-net pre-exit callback cleared the old selection. The race looks like this: CPU 0 CPU 1 ---- ---- unregister_pernet_subsys() nf_log_unset(net, logger) net->nf.nf_loggers[pf] = NULL lock nf_log_mutex find logger in loggers[][] net->nf.nf_loggers[pf] = logger unlock nf_log_mutex nf_log_unregister(logger) lock nf_log_mutex loggers[pf][type] = NULL unlock nf_log_mutex synchronize_rcu() module exit returns module core frees backend memory Later, a sysctl read or packet logging operation can dereference the stale per-net logger pointer. Fix this by unregistering the global logger backends before tearing down per-net state. Once the global registrations are gone, later writers can no longer rebind the logger. unregister_pernet_subsys() already waits for an RCU grace period after the pre-exit callback clears the per-net selection, while nf_log_unregister() continues to cover readers of the global logger table. Apply this ordering fix to both nf_log backends that combine per-net teardown with global logger registration.

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