CVE-2026-74748

CVE-2026-74748

High · published August 26, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
2.9
In the wild
Unconfirmed
What it is

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

netfilter: ipset: fix refcount race between list:set GC and swap

__ip_set_put_byindex() resolved the index to a set pointer under RCU,

then took ip_set_ref_lock in __ip_set_put() to decrement set->ref.

ip_set_swap() holds that same lock while swapping both the ip_set_list

slots and the two sets' ref counters, so it can interleave between the

dereference and the lock acquisition, leaving the caller to decrement a

set whose reference already moved to the other index and hit

BUG_ON(set->ref == 0). list_set_gc() reaches this from timer softirq,

which the nfnl mutex does not serialize against swap: an expiring

list:set member calls list_set_del() -> ip_set_put_byindex() while

IPSET_CMD_SWAP runs on the referenced sets.

Resolve the index and decrement under ip_set_ref_lock, as ip_set_swap()

already does, keeping the refcount tied to the index rather than to a

stale set pointer.

kernel BUG at net/netfilter/ipset/ip_set_core.c:685!

Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI

RIP: 0010:ip_set_put_byindex (net/netfilter/ipset/ip_set_core.c:870)

Call Trace:

<IRQ>

list_set_del (net/netfilter/ipset/ip_set_list_set.c:159)

set_cleanup_entries (net/netfilter/ipset/ip_set_list_set.c:181)

list_set_gc (net/netfilter/ipset/ip_set_list_set.c:578)

call_timer_fn (kernel/time/timer.c:1748)

__run_timers (kernel/time/timer.c:1799 kernel/time/timer.c:2374)

run_timer_softirq (kernel/time/timer.c:2405)

</IRQ>

Kernel panic - not syncing: Fatal exception in interrupt

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00139 · 2.9th percentile
Published
2026-08-26T19:16Z
References (8)
EPSS history
Timeline
  • 28 AUG 06:53Z
    EPSS moved — → 0%
    epss
  • 26 AUG 14:36Z
    netfilter: ipset: fix refcount race between list:set GC and swap
    cvelistv5