Bug 2439687 (CVE-2026-23111) - CVE-2026-23111 kernel: Kernel: Privilege escalation or denial of service in nf_tables via inverted element activity check
Summary: CVE-2026-23111 kernel: Kernel: Privilege escalation or denial of service in n...
Keywords:
Status: NEW
Alias: CVE-2026-23111
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-02-13 14:01 UTC by OSIDB Bzimport
Modified: 2026-10-06 02:11 UTC (History)
18 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2026:10108 0 None None None 2026-04-23 22:46:40 UTC
Red Hat Product Errata RHSA-2026:18134 0 None None None 2026-05-19 08:34:59 UTC
Red Hat Product Errata RHSA-2026:62639 0 None None None 2026-09-02 14:00:10 UTC
Red Hat Product Errata RHSA-2026:62641 0 None None None 2026-09-02 14:11:38 UTC
Red Hat Product Errata RHSA-2026:6570 0 None None None 2026-04-06 01:05:29 UTC
Red Hat Product Errata RHSA-2026:9112 0 None None None 2026-04-20 20:28:55 UTC

Description OSIDB Bzimport 2026-02-13 14:01:26 UTC
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.

Comment 4 errata-xmlrpc 2026-04-06 01:05:28 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:6570 https://access.redhat.com/errata/RHSA-2026:6570

Comment 5 errata-xmlrpc 2026-04-20 20:28:54 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9.6 Extended Update Support

Via RHSA-2026:9112 https://access.redhat.com/errata/RHSA-2026:9112

Comment 6 errata-xmlrpc 2026-04-23 22:46:39 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9.4 Extended Update Support

Via RHSA-2026:10108 https://access.redhat.com/errata/RHSA-2026:10108

Comment 8 errata-xmlrpc 2026-04-27 18:01:41 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10.0 Extended Update Support

Via RHSA-2026:10996 https://access.redhat.com/errata/RHSA-2026:10996

Comment 9 errata-xmlrpc 2026-05-19 08:34:58 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10

Via RHSA-2026:18134 https://access.redhat.com/errata/RHSA-2026:18134

Comment 12 errata-xmlrpc 2026-09-02 14:00:08 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9.4 Update Services for SAP Solutions

Via RHSA-2026:62639 https://access.redhat.com/errata/RHSA-2026:62639

Comment 13 errata-xmlrpc 2026-09-02 14:11:36 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9.6 Extended Update Support

Via RHSA-2026:62641 https://access.redhat.com/errata/RHSA-2026:62641

Comment 14 Akiyoshi Kurita 2026-10-06 02:11:51 UTC
A public working local privilege escalation exploit for CVE-2026-23111 has now been published by FuzzingLabs.

The published exploit targets RHEL 10.1 with:

kernel-6.12.0-124.38.1.el10_1

and demonstrates a complete exploitation chain resulting in root privileges, rather than only a crash or UAF reproduction.

Reference:
https://fuzzinglabs.com/repro-cve-2026-23111/

Could Red Hat please confirm whether the availability of this public working LPE exploit changes the current exploitability assessment or severity evaluation for CVE-2026-23111?

It would also be useful to confirm whether all affected supported RHEL kernel streams have received the required fixes.


Note You need to log in before you can comment on or make changes to this bug.