{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-23111","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-01-13T15:37:45.968Z","datePublished":"2026-02-13T13:29:55.895Z","dateUpdated":"2026-05-11T22:00:20.142Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-05-11T22:00:20.142Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()\n\nnft_map_catchall_activate() has an inverted element activity check\ncompared to its non-catchall counterpart nft_mapelem_activate() and\ncompared to what is logically required.\n\nnft_map_catchall_activate() is called from the abort path to re-activate\ncatchall map elements that were deactivated during a failed transaction.\nIt should skip elements that are already active (they don't need\nre-activation) and process elements that are inactive (they need to be\nrestored). Instead, the current code does the opposite: it skips inactive\nelements and processes active ones.\n\nCompare the non-catchall activate callback, which is correct:\n\n  nft_mapelem_activate():\n    if (nft_set_elem_active(ext, iter->genmask))\n        return 0;   /* skip active, process inactive */\n\nWith the buggy catchall version:\n\n  nft_map_catchall_activate():\n    if (!nft_set_elem_active(ext, genmask))\n        continue;   /* skip inactive, process active */\n\nThe consequence is that when a DELSET operation is aborted,\nnft_setelem_data_activate() is never called for the catchall element.\nFor NFT_GOTO verdict elements, this means nft_data_hold() is never\ncalled to restore the chain->use reference count. Each abort cycle\npermanently decrements chain->use. Once chain->use reaches zero,\nDELCHAIN succeeds and frees the chain while catchall verdict elements\nstill reference it, resulting in a use-after-free.\n\nThis is exploitable for local privilege escalation from an unprivileged\nuser via user namespaces + nftables on distributions that enable\nCONFIG_USER_NS and CONFIG_NF_TABLES.\n\nFix by removing the negation so the check matches nft_mapelem_activate():\nskip active elements, process inactive ones."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"}}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nf_tables_api.c"],"versions":[{"version":"25aa2ad37c2162be1c0bc4fe6397f7e4c13f00f8","lessThan":"8c760ba4e36c750379d13569f23f5a6e185333f5","status":"affected","versionType":"git"},{"version":"d60be2da67d172aecf866302c91ea11533eca4d9","lessThan":"b9b6573421de51829f7ec1cce76d85f5f6fbbd7f","status":"affected","versionType":"git"},{"version":"628bd3e49cba1c066228e23d71a852c23e26da73","lessThan":"42c574c1504aa089a0a142e4c13859327570473d","status":"affected","versionType":"git"},{"version":"628bd3e49cba1c066228e23d71a852c23e26da73","lessThan":"1444ff890b4653add12f734ffeffc173d42862dd","status":"affected","versionType":"git"},{"version":"628bd3e49cba1c066228e23d71a852c23e26da73","lessThan":"8b68a45f9722f2babe9e7bad00aa74638addf081","status":"affected","versionType":"git"},{"version":"628bd3e49cba1c066228e23d71a852c23e26da73","lessThan":"f41c5d151078c5348271ffaf8e7410d96f2d82f8","status":"affected","versionType":"git"},{"version":"bc9f791d2593f17e39f87c6e2b3a36549a3705b1","status":"affected","versionType":"git"},{"version":"3c7ec098e3b588434a8b07ea9b5b36f04cef1f50","status":"affected","versionType":"git"},{"version":"a136b7942ad2a50de708f76ea299ccb45ac7a7f9","status":"affected","versionType":"git"},{"version":"dc7cdf8cbcbf8b13de1df93f356ec04cdeef5c41","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nf_tables_api.c"],"versions":[{"version":"6.4","status":"affected"},{"version":"0","lessThan":"6.4","status":"unaffected","versionType":"semver"},{"version":"5.15.200","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.163","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.124","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.70","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.10","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"6.19","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.121","versionEndExcluding":"5.15.200"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.36","versionEndExcluding":"6.1.163"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.6.124"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.12.70"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.18.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.19"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.316"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.262"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.188"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3.10"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/8c760ba4e36c750379d13569f23f5a6e185333f5"},{"url":"https://git.kernel.org/stable/c/b9b6573421de51829f7ec1cce76d85f5f6fbbd7f"},{"url":"https://git.kernel.org/stable/c/42c574c1504aa089a0a142e4c13859327570473d"},{"url":"https://git.kernel.org/stable/c/1444ff890b4653add12f734ffeffc173d42862dd"},{"url":"https://git.kernel.org/stable/c/8b68a45f9722f2babe9e7bad00aa74638addf081"},{"url":"https://git.kernel.org/stable/c/f41c5d151078c5348271ffaf8e7410d96f2d82f8"}],"title":"netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()","x_generator":{"engine":"bippy-1.2.0"}}}}