CVE-2026-23351
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
25/03/2026
Last modified:
24/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
netfilter: nft_set_pipapo: split gc into unlink and reclaim phase<br />
<br />
Yiming Qian reports Use-after-free in the pipapo set type:<br />
Under a large number of expired elements, commit-time GC can run for a very<br />
long time in a non-preemptible context, triggering soft lockup warnings and<br />
RCU stall reports (local denial of service).<br />
<br />
We must split GC in an unlink and a reclaim phase.<br />
<br />
We cannot queue elements for freeing until pointers have been swapped.<br />
Expired elements are still exposed to both the packet path and userspace<br />
dumpers via the live copy of the data structure.<br />
<br />
call_rcu() does not protect us: dump operations or element lookups starting<br />
after call_rcu has fired can still observe the free&#39;d element, unless the<br />
commit phase has made enough progress to swap the clone and live pointers<br />
before any new reader has picked up the old version.<br />
<br />
This a similar approach as done recently for the rbtree backend in commit<br />
35f83a75529a ("netfilter: nft_set_rbtree: don&#39;t gc elements on insert").
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.6.1 (including) | 5.10.253 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.203 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.167 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.130 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.77 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.17 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.7 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.6:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/16f3595c0441d87dfa005c47d8f95be213afaa9e
- https://git.kernel.org/stable/c/500a50a301ce962b019ab95053ac70264fec2c21
- https://git.kernel.org/stable/c/65ca51b9fb85477ab92a04295aed34b38f7c062e
- https://git.kernel.org/stable/c/7864c667aed01a58b87ca518a631322cd0ac34c0
- https://git.kernel.org/stable/c/9df95785d3d8302f7c066050117b04cd3c2048c2
- https://git.kernel.org/stable/c/aff13667708dfa0dce136b8efd81baa9fa6ef261
- https://git.kernel.org/stable/c/c0f1f85097ac2b6e7d750fe4d05807985cd3fd3a
- https://git.kernel.org/stable/c/c12d570d71920903a1a0468b7d13b085203d0c93



