KernelScan.io

HIGH Introduced in 4.12

netfilter NfnetlinkLog UAF

CVE-2026-93288

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.7HIGH

01

In the Linux kernel, the following vulnerability has been resolved: netfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state sashiko reports: "nfnl_log_net_exit() calls nf_log_unset(), which clears the logger pointer without an RCU grace period. Immediately after, ops_free_list() frees the per-net state while concurrent packets might still be executing nf_log_packet() under rcu_read_lock()." Clear the pointer via .pre_exit to make sure rcu readers have completed before pernet storage is free'd. The change in nf_log_syslog.c is only done for consistency: it doesn't use pernet data.

02

Engine v0.6.0

Risk summary

A local attacker who can create network namespaces (e.g., via an unprivileged user namespace) can trigger a use-after-free in the netfilter logging subsystem during namespace teardown while packets are concurrently being logged. This can lead to kernel memory corruption, potentially enabling container escape or privilege escalation. The race window requires careful timing but is reachable without root privileges on default kernel configurations.

Affectednet/netfilter/nfnetlink_log.c (netfilter logging)

Vulnerability analysis

During network namespace teardown, the netfilter logging subsystem clears its logger pointer and immediately frees the per-namespace state without waiting for in-flight packet logging operations to finish. Packets being processed through netfilter hooks may still be reading that per-namespace data when it is freed, resulting in a use-after-free. The fix separates the logger shutdown from the memory release so the kernel waits for all concurrent readers to complete before the storage is freed. Any local user who can configure logging rules inside a user namespace — available to unprivileged containers by default — can reach this by generating traffic and tearing down the namespace concurrently.

03

BranchIntroducedFixed inPatch commit
5.154.125.15.222ba2e246aa294
6.14.126.1.1895570d6c8b320
6.64.126.6.1583b9aa62d78ce
6.124.126.12.111f44616543745
6.184.126.18.53dc20050b6b12
mainline4.127.233d1469b0124
cip/6.124.126.12.111-cip32f44616543745