CVE-2026-64189: netfilter: ipset: fix race between dump and ip_set_list resize

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026072051-CVE-2026-64189-b911@gregkh>
From: Greg Kroah-Hartman <[email protected]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

netfilter: ipset: fix race between dump and ip_set_list resize

The release path of ip_set_dump_do() and ip_set_dump_done() read
inst->ip_set_list via ip_set_ref_netlink(), a plain rcu_dereference_raw()
of the array pointer. These run from netlink_recvmsg() without the nfnl
mutex and without an RCU read-side critical section.

A concurrent ip_set_create() can grow the array: it publishes the new
array, calls synchronize_net() and then kvfree()s the old one. Since the
dump paths read the array outside any RCU reader, synchronize_net() does
not wait for them and the old array can be freed while they still index
into it, causing a use-after-free.

The dumped set itself stays pinned via set->ref_netlink, so only the
array load needs protecting. Take rcu_read_lock() around it, matching
ip_set_get_byname() and __ip_set_put_byindex().

  BUG: KASAN: slab-use-after-free in ip_set_dump_do (net/netfilter/ipset/ip_set_core.c:1697)
  Read of size 8 at addr ffff88800b5c4018 by task exploit/150
  Call Trace:
   ...
   kasan_report (mm/kasan/report.c:595)
   ip_set_dump_do (net/netfilter/ipset/ip_set_core.c:1697)
   netlink_dump (net/netlink/af_netlink.c:2325)
   netlink_recvmsg (net/netlink/af_netlink.c:1976)
   sock_recvmsg (net/socket.c:1159)
   __sys_recvfrom (net/socket.c:2315)
   ...
  Oops: general protection fault, probably for non-canonical address ... KASAN NOPTI
  KASAN: maybe wild-memory-access in range [0x02d6...d0-0x02d6...d7]
  RIP: 0010:ip_set_dump_do (net/netfilter/ipset/ip_set_core.c:1698)
  Kernel panic - not syncing: Fatal exception

The Linux kernel CVE team has assigned CVE-2026-64189 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 4.20 with commit 8a02bdd50b2ecb6d62121d2958d3ea186cc88ce7 and fixed in 6.12.96 with commit ff86ea9b7fdf70564e60436fbee68c96bc459943
	Issue introduced in 4.20 with commit 8a02bdd50b2ecb6d62121d2958d3ea186cc88ce7 and fixed in 6.18.39 with commit 81d54c766337b923eec26da0a13406760b091093
	Issue introduced in 4.20 with commit 8a02bdd50b2ecb6d62121d2958d3ea186cc88ce7 and fixed in 7.1.4 with commit e8ee198bbc04a32d336e79160fde980e0235b39f
	Issue introduced in 4.20 with commit 8a02bdd50b2ecb6d62121d2958d3ea186cc88ce7 and fixed in 7.2-rc2 with commit 7cd9103283b26b917360ec99d7d2f2d761bcf1ab
	Issue introduced in 4.19.5 with commit 2f6bf7917f55f9dae913193e49672b3598620eab

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-64189
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	net/netfilter/ipset/ip_set_core.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/ff86ea9b7fdf70564e60436fbee68c96bc459943
	https://git.kernel.org/stable/c/81d54c766337b923eec26da0a13406760b091093
	https://git.kernel.org/stable/c/e8ee198bbc04a32d336e79160fde980e0235b39f
	https://git.kernel.org/stable/c/7cd9103283b26b917360ec99d7d2f2d761bcf1ab
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.