Re: [PATCH net 6/6] net/sched: act_ct: fix helper UAF due to extensions realloc

From: Aaron Conole

Date: Wed Sep 23 2026 - 08:39:39 EST


Ilya Maximets <i.maximets@xxxxxxx> writes:

> While calling the helpers, a raw pointer to the extensions area is
> wired into expectations list:
>
> -> nf_ct_helper()
> -> helper->help()
> -> nf_ct_expect_related_report()
> -> nf_ct_expect_insert()
> -> hlist_add_head_rcu(&exp->lnode, &master_help->expectations)
>
> In case the connection is not confirmed yet, more extensions can be
> added afterwards with *_ext_add() calls reallocating the extension
> space and leaving the now invalid pointer in the expectations list
> that is later accessed while removing the expectation.
>
> Make sure that helpers are called at the end after all the other
> extensions are already added.
>
> Note that the helper rejection now leaves the mark and labels set,
> but that's not different from how the NAT was handled before or how
> the mark and the labels were handled on confirmation failure. And
> there are no atomicity guarantees provided by the API anyway.
>
> Fixes: a21b06e73191 ("net: sched: add helper support in act_ct")
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Axel Mierczuk <axel.mierczuk@xxxxxxxxxxxxx>
> Signed-off-by: Ilya Maximets <i.maximets@xxxxxxx>
> ---

Reviewed-by: Aaron Conole <aconole@xxxxxxxxxx>