HIGH Public exploit Introduced in 4.16
netfilter Flowtable UAF
CVE-2026-23392
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI7.8HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: release flowtable after rcu grace period on error Call synchronize_rcu() after unregistering the hooks from error path, since a hook that already refers to this flowtable can be already registered, exposing this flowtable to packet path and nfnetlink_hook control plane. This error path is rare, it should only happen by reaching the maximum number hooks or by failing to set up to hardware offload, just call synchronize_rcu(). There is a check for already used device hooks by different flowtable that could result in EEXIST at this late stage. The hook parser can be updated to perform this check earlier to this error path really becomes rarely exercised. Uncovered by KASAN reported as use-after-free from nfnetlink_hook path when dumping hooks.
02KernelScan AI Analysis
Risk summary
A use-after-free vulnerability in netfilter's nf_tables flowtable error handling allows local attackers with CAP_NET_ADMIN to cause kernel memory corruption. The bug occurs when flowtable hooks are unregistered without proper RCU synchronization, allowing concurrent access to freed memory during hook enumeration.
Vulnerability analysis
The root cause is missing RCU synchronization in the flowtable creation error path. When nf_tables_newflowtable() fails after registering hooks, it immediately destroys the flowtable without calling synchronize_rcu(). However, other kernel threads may still hold RCU read locks and access the flowtable through the nfnetlink_hook control plane or packet processing path. The fix adds synchronize_rcu() before destroying the transaction, ensuring all RCU readers complete before the flowtable memory is freed. This vulnerability is reachable through netlink sockets requiring CAP_NET_ADMIN capability.
Exploit availability
KernelScan found public exploit code for this CVE. Open it in the CVE browser to see what we found, where, and how strong the evidence is — that needs a free account with a confirmed email address.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.1 | 4.16 | 6.1.167 | d2632de96ccb |
| 6.12 | 4.16 | 6.12.78 | 7e3955b282ea |
| 6.18 | 4.16 | 6.18.20 | c8092edb9a11 |
| 6.19 | 4.16 | 6.19.10 | e78a2dcc7cfb |
| 6.6 | 4.16 | 6.6.130 | adee3436ccd2 |
| mainline | 4.16 | 7.0 | d73f4b53aaae |
| cip/6.1 | 4.16 | 6.1.167-cip53 | d2632de96ccb |
| cip/6.1-rt | 4.16 | 6.1.167-cip53-rt29 | d2632de96ccb |
| cip/6.12 | 4.16 | 6.12.78-cip19 | 7e3955b282ea |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Fixed in 6.12.78-cip19 |
| cip/6.1 | Fixed in 6.1.167-cip53 |
| cip/6.1-rt | Fixed in 6.1.167-cip53-rt29 |
| cip/5.10 | Affected — no CIP fix yet (latest 5.10.271-cip78) |
| cip/5.10-rt | Affected — no CIP fix yet (latest 5.10.268-cip77-rt34) |
| cip/4.19 | Affected — no CIP fix yet (latest 4.19.325-cip136) |
| cip/4.19-rt | Affected — no CIP fix yet (latest 4.19.325-cip136-rt50) |