CVE-2026-23111
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2026
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate() nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required. nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones. Compare the non-catchall activate callback, which is correct: nft_mapelem_activate(): if (nft_set_elem_active(ext, iter->genmask)) return 0; /* skip active, process inactive */ With the buggy catchall version: nft_map_catchall_activate(): if (!nft_set_elem_active(ext, genmask)) continue; /* skip inactive, process active */ The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free. This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES. Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.
Scoped product and version facts
Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.
Exploitation unknown; this catalogue does not assess exploitation.
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
unaffected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 25aa2ad37c2162be1c0bc4fe6397f7e4c13f00f8 | affected | git | 8c760ba4e36c750379d13569f23f5a6e185333f5 | Unavailable | None listed |
| d60be2da67d172aecf866302c91ea11533eca4d9 | affected | git | b9b6573421de51829f7ec1cce76d85f5f6fbbd7f | Unavailable | None listed |
| 628bd3e49cba1c066228e23d71a852c23e26da73 | affected | git | 42c574c1504aa089a0a142e4c13859327570473d | Unavailable | None listed |
| 628bd3e49cba1c066228e23d71a852c23e26da73 | affected | git | 1444ff890b4653add12f734ffeffc173d42862dd | Unavailable | None listed |
| 628bd3e49cba1c066228e23d71a852c23e26da73 | affected | git | 8b68a45f9722f2babe9e7bad00aa74638addf081 | Unavailable | None listed |
| 628bd3e49cba1c066228e23d71a852c23e26da73 | affected | git | f41c5d151078c5348271ffaf8e7410d96f2d82f8 | Unavailable | None listed |
| bc9f791d2593f17e39f87c6e2b3a36549a3705b1 | affected | git | Unavailable | Unavailable | None listed |
| 3c7ec098e3b588434a8b07ea9b5b36f04cef1f50 | affected | git | Unavailable | Unavailable | None listed |
| a136b7942ad2a50de708f76ea299ccb45ac7a7f9 | affected | git | Unavailable | Unavailable | None listed |
| dc7cdf8cbcbf8b13de1df93f356ec04cdeef5c41 | affected | git | Unavailable | Unavailable | None listed |
| 5.15.121 | affected | semver | 5.15.200 | Unavailable | None listed |
| 6.1.36 | affected | semver | 6.1.163 | Unavailable | None listed |
| 4.19.316 | affected | semver | 4.20 | Unavailable | None listed |
| 5.4.262 | affected | semver | 5.5 | Unavailable | None listed |
| 5.10.188 | affected | semver | 5.11 | Unavailable | None listed |
| 6.3.10 | affected | semver | 6.4 | Unavailable | None listed |
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
affected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 6.4 | affected | Unavailable | Unavailable | Unavailable | None listed |
| 0 | unaffected | semver | 6.4 | Unavailable | None listed |
| 5.15.200 | unaffected | semver | Unavailable | 5.15.* | None listed |
| 6.1.163 | unaffected | semver | Unavailable | 6.1.* | None listed |
| 6.6.124 | unaffected | semver | Unavailable | 6.6.* | None listed |
| 6.12.70 | unaffected | semver | Unavailable | 6.12.* | None listed |
| 6.18.10 | unaffected | semver | Unavailable | 6.18.* | None listed |
| 6.19 | unaffected | original_commit_for_fix | Unavailable | * | None listed |