CVE Catalog

CVE-2026-97608

HighCVSS 7.0
Published: Updated: Translated: NVD NIST

Summary

A race condition in the Linux kernel's netfilter nf_log module allows a use-after-free when loggers are unregistered. The incorrect ordering lets a sysctl or netlink writer rebind a logger after per-net state is cleared but before the global backend is removed, leading to a dangling pointer.

Risk Assessment

An attacker with write access via sysctl or netlink could trigger memory corruption in the kernel, potentially leading to privilege escalation or a system crash (kernel panic).

Recommendation

Apply the official patch from your Linux kernel distributor immediately, which fixes the ordering by unregistering global logger backends before per-net teardown. Reboot the system after the update.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS