CVE-2026-74748

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
26/08/2026
Last modified:
27/08/2026

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> netfilter: ipset: fix refcount race between list:set GC and swap<br /> <br /> __ip_set_put_byindex() resolved the index to a set pointer under RCU,<br /> then took ip_set_ref_lock in __ip_set_put() to decrement set-&gt;ref.<br /> ip_set_swap() holds that same lock while swapping both the ip_set_list<br /> slots and the two sets&amp;#39; ref counters, so it can interleave between the<br /> dereference and the lock acquisition, leaving the caller to decrement a<br /> set whose reference already moved to the other index and hit<br /> BUG_ON(set-&gt;ref == 0). list_set_gc() reaches this from timer softirq,<br /> which the nfnl mutex does not serialize against swap: an expiring<br /> list:set member calls list_set_del() -&gt; ip_set_put_byindex() while<br /> IPSET_CMD_SWAP runs on the referenced sets.<br /> <br /> Resolve the index and decrement under ip_set_ref_lock, as ip_set_swap()<br /> already does, keeping the refcount tied to the index rather than to a<br /> stale set pointer.<br /> <br /> kernel BUG at net/netfilter/ipset/ip_set_core.c:685!<br /> Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI<br /> RIP: 0010:ip_set_put_byindex (net/netfilter/ipset/ip_set_core.c:870)<br /> Call Trace:<br /> <br /> list_set_del (net/netfilter/ipset/ip_set_list_set.c:159)<br /> set_cleanup_entries (net/netfilter/ipset/ip_set_list_set.c:181)<br /> list_set_gc (net/netfilter/ipset/ip_set_list_set.c:578)<br /> call_timer_fn (kernel/time/timer.c:1748)<br /> __run_timers (kernel/time/timer.c:1799 kernel/time/timer.c:2374)<br /> run_timer_softirq (kernel/time/timer.c:2405)<br /> <br /> Kernel panic - not syncing: Fatal exception in interrupt