CVE-2026-93288: netfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nfnetlinklog: wait for rcu grace period before freeing pernet state
sashiko reports: "nfnllognetexit() calls nflogunset(), which clears the logger pointer without an RCU grace period. Immediately after, opsfreelist() frees the per-net state while concurrent packets might still be executing nflogpacket() under rcureadlock()."
Clear the pointer via .preexit to make sure rcu readers have completed before pernet storage is free'd. The change in nflogsyslog.c is only done for consistency: it doesn't use pernet data.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Clear the logger pointer via .pre_exit and wait for an RCU grace period before freeing the per-net state, ensuring concurrent nf_log_packet() readers have completed.
Event History
Frequently Asked Questions
What conditions are required for this issue to be reachable?
The issue requires concurrent packet processing through nf_log_packet() while the nfnetlink_log per-network namespace state is being torn down. The unsafe condition occurs because readers may still hold an RCU read-side lock after the logger pointer is cleared and before the per-network state is freed.
What is the likely impact of the race?
Concurrent packet handling can access per-network state after it has been freed, creating a use-after-free condition in the Linux kernel. The provided information does not specify a confirmed exploitation outcome beyond this unsafe access.
How does the fix address the issue?
The fix clears the logger pointer through the per-network .pre_exit path, allowing RCU readers to complete before per-network storage is freed. A related change to nf_log_syslog.c is described as consistency-only because that logger does not use per-network data.