Linux Kernel nf_tables chain UAF: nf_tables_addchain() RCU flaw
CVE-2026-23231 Published on March 4, 2026
netfilter: nf_tables: fix use-after-free in nf_tables_addchain()
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_tables: fix use-after-free in nf_tables_addchain()
nf_tables_addchain() publishes the chain to table->chains via
list_add_tail_rcu() (in nft_chain_add()) before registering hooks.
If nf_tables_register_hook() then fails, the error path calls
nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy()
with no RCU grace period in between.
This creates two use-after-free conditions:
1) Control-plane: nf_tables_dump_chains() traverses table->chains
under rcu_read_lock(). A concurrent dump can still be walking
the chain when the error path frees it.
2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly
installs the IPv4 hook before IPv6 registration fails. Packets
entering nft_do_chain() via the transient IPv4 hook can still be
dereferencing chain->blob_gen_X when the error path frees the
chain.
Add synchronize_rcu() between nft_chain_del() and the chain destroy
so that all RCU readers -- both dump threads and in-flight packet
evaluation -- have finished before the chain is freed.
Products Associated with CVE-2026-23231
Want to know whenever a new CVE is published for Linux Kernel? stack.watch will email you.
Affected Versions
Linux:- Version 91c7b38dc9f0de4f7f444b796d14476bc12df7bc and below 2a6586ecfa4ce1413daaafee250d2590e05f1a33 is affected.
- Version 91c7b38dc9f0de4f7f444b796d14476bc12df7bc and below 7017745068a9068904e1e7a1b170a5785647cc81 is affected.
- Version 91c7b38dc9f0de4f7f444b796d14476bc12df7bc and below f3fe58ce37926a10115ede527d59b91bcc05400a is affected.
- Version 91c7b38dc9f0de4f7f444b796d14476bc12df7bc and below dbd0af8083dd201f07c49110b2ee93710abdff28 is affected.
- Version 91c7b38dc9f0de4f7f444b796d14476bc12df7bc and below 2f9a4ffeb763aec822f8ff3d1e82202d27d46d4b is affected.
- Version 91c7b38dc9f0de4f7f444b796d14476bc12df7bc and below 71e99ee20fc3f662555118cf1159443250647533 is affected.
- Version 3.16 is affected.
- Before 3.16 is unaffected.
- Version 6.1.165, <= 6.1.* is unaffected.
- Version 6.6.128, <= 6.6.* is unaffected.
- Version 6.12.75, <= 6.12.* is unaffected.
- Version 6.18.14, <= 6.18.* is unaffected.
- Version 6.19.4, <= 6.19.* is unaffected.
- Version 7.0-rc1, <= * is unaffected.