{"id":"CVE-2026-23231","revision":"8983656fe8e443469eab861f49a3c27f","records":[{"revision":"8983656fe8e443469eab861f49a3c27f","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-23231","aliases":[],"title":"netfilter: nf_tables: fix use-after-free in nf_tables_addchain()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_tables: fix use-after-free in nf_tables_addchain()\n\nnf_tables_addchain() publishes the chain to table->chains via\nlist_add_tail_rcu() (in nft_chain_add()) before registering hooks.\nIf nf_tables_register_hook() then fails, the error path calls\nnft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy()\nwith no RCU grace period in between.\n\nThis creates two use-after-free conditions:\n\n 1) Control-plane: nf_tables_dump_chains() traverses table->chains\n    under rcu_read_lock(). A concurrent dump can still be walking\n    the chain when the error path frees it.\n\n 2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly\n    installs the IPv4 hook before IPv6 registration fails.  Packets\n    entering nft_do_chain() via the transient IPv4 hook can still be\n    dereferencing chain->blob_gen_X when the error path frees the\n    chain.\n\nAdd synchronize_rcu() between nft_chain_del() and the chain destroy\nso that all RCU readers -- both dump threads and in-flight packet\nevaluation -- have finished before the chain is freed.","state":0,"publishedAt":"2026-03-04T12:58:42.029+00:00","modifiedAt":"2026-10-19T18:35:39.463+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/netfilter/nf_tables_api.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"91c7b38dc9f0de4f7f444b796d14476bc12df7bc\",\n                            \"lessThan\": \"2a6586ecfa4ce1413daaafee250d2590e05f1a33\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"91c7b38dc9f0de4f7f444b796d14476bc12df7bc\",\n                            \"lessThan\": \"7017745068a9068904e1e7a1b170a5785647cc81\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"91c7b38dc9f0de4f7f444b796d14476bc12df7bc\",\n                            \"lessThan\": \"f3fe58ce37926a10115ede527d59b91bcc05400a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"91c7b38dc9f0de4f7f444b796d14476bc12df7bc\",\n                            \"lessThan\": \"dbd0af8083dd201f07c49110b2ee93710abdff28\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"91c7b38dc9f0de4f7f444b796d14476bc12df7bc\",\n                            \"lessThan\": \"2f9a4ffeb763aec822f8ff3d1e82202d27d46d4b\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"91c7b38dc9f0de4f7f444b796d14476bc12df7bc\",\n                            \"lessThan\": \"71e99ee20fc3f662555118cf1159443250647533\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/netfilter/nf_tables_api.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"3.16\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"3.16\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.165\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.128\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.75\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.14\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.19.4\",\n                            \"lessThanOrEqual\": \"6.19.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.0\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","score":7.8,"severity":"HIGH"}],"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"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-23231","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-23231","identifiers":["CVE-2026-23231"]},"retained":false,"historicalAffected":[]}],"coverage":[]}