Live › vulnerability › CVE-2026-98484
Go to dashboardIn the Linux kernel's nf_tables firewall, expired catchall set elements stay visible to the insert and delete code paths while userspace dumps hide them. A rule can silently stop matching or delete the wrong entry until the garbage-collection interval passes.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 21:57 UTC. All times on this page are UTC.
Systems running Linux kernels with nf_tables and catchall set elements that use timeouts. Hosts that do not use nftables catchall elements with timeouts are unlikely to see the functional problem. The sources do not state a fixed version.
No product ranges from the sources yet.
uname -r and compare against the fixed kernel versions listed in the NVD entry (unknown in the sources provided).nft list ruleset | grep -i catchall.Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf_tables: skip expired catchall elements on insert and delete
nft_setelem_catchall_insert() looks up duplicates with nft_set_elem_active() only, while nft_set_catchall_lookup() and the dump path additionally skip expired elements.
Once a catchall element with a timeout expires, this predicate drift makes it invisible to userspace dumps, yet it still blocks re-insertion: with NLM_F_EXCL the request fails with -EEXIST, and without it the request reports success but silently inserts nothing. The stale entry only goes away when the (user-tunable) gc interval elapses, so the catchall rule may silently stop matching for an arbitrarily long time after its first expiration.
The delete path shows the same drift: nft_setelem_catchall_deactivate() picks the first active-next entry in the catchall list, so with an expired entry still pending GC it retires the stale entry instead of the fresh one, and it deactivates an element that userspace no longer sees instead of failing with -ENOENT.
Align both walks with the lookup and dump predicates: only an element that is active and not expired counts as a duplicate or delete candidate, using the per-netns timestamp taken at transaction start, in line with the set backend .insert/.deactivate and catchall GC sync paths.
This page as .md · .json · in your agent: get_signal("CVE-2026-98484")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.