ACK/Cmnt: [SRU][J/N/Q][PATCH 0/1] CVE-2026-23351

Yufeng Gao yufeng.gao at canonical.com
Thu Apr 2 03:17:59 UTC 2026


On 2/4/26 07:59, Tim Whisonant wrote:
> SRU Justification:
>
> [Impact]
>
> netfilter: nft_set_pipapo: split gc into unlink and reclaim phase
>
> Yiming Qian reports Use-after-free in the pipapo set type:
>    Under a large number of expired elements, commit-time GC can run for a very
>    long time in a non-preemptible context, triggering soft lockup warnings and
>    RCU stall reports (local denial of service).
>
> We must split GC in an unlink and a reclaim phase.
>
> We cannot queue elements for freeing until pointers have been swapped.
> Expired elements are still exposed to both the packet path and userspace
> dumpers via the live copy of the data structure.
>
> call_rcu() does not protect us: dump operations or element lookups starting
> after call_rcu has fired can still observe the free'd element, unless the
> commit phase has made enough progress to swap the clone and live pointers
> before any new reader has picked up the old version.
>
> This a similar approach as done recently for the rbtree backend in commit
> 35f83a75529a ("netfilter: nft_set_rbtree: don't gc elements on insert").
>
> [Fix]
>
> Questing: cherry picked from upstream
> Noble:    backported from linux-6.6.y
> Jammy:    cherry picked from linux-6.1.y
> Focal:    not affected
> Bionic:   not affected
> Xenial:   not affected
> Trusty:   not affected
>
> [Test Plan]
>
> Compile and boot tested.
>
> [Where problems could occur]
>
> The change affects the Pile Packet Policies set type portion of the
> nftables framework, specifically the garbage collector, to address
> a use after free. Issues would affect handling of these set type
> data structures.
>
> [Notes]
>
> * The Jammy fix consists of two patches:
>   * 25600167215 ("netfilter: nf_tables: de-constify set commit ops function argument")
>     This patch brings the code closer to upstream. It also allows
>     the fix commit to apply as a clean cherry pick.
>   * 16f3595c044 ("netfilter: nft_set_pipapo: split gc into unlink and reclaim phase")
>     This patch is a backport of the fix commit to 6.1. It applies as a
>     clean cherry pick, thanks to the first patch.
>
> Florian Westphal (1):
>    netfilter: nft_set_pipapo: split gc into unlink and reclaim phase
>
>   include/net/netfilter/nf_tables.h |  5 +++
>   net/netfilter/nf_tables_api.c     |  5 ---
>   net/netfilter/nft_set_pipapo.c    | 51 ++++++++++++++++++++++++++-----
>   net/netfilter/nft_set_pipapo.h    |  2 ++
>   4 files changed, 50 insertions(+), 13 deletions(-)
>
Not all emails are grouped under the same thread in my mail client - 
probably just an issue on my side.

Acked-by: Yufeng Gao <yufeng.gao at canonical.com>




More information about the kernel-team mailing list