Re: [PATCH net 3/6] net: openvswitch: conntrack: fix helper UAF due to extensions realloc
From: Aaron Conole
Date: Tue Sep 22 2026 - 11:32:57 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: cae3a2627520 ("openvswitch: Allow attaching helpers to ct action")
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Axel Mierczuk <axel.mierczuk@xxxxxxxxxxxxx>
> Signed-off-by: Ilya Maximets <i.maximets@xxxxxxx>
> ---
Reviewed-by: Aaron Conole <aconole@xxxxxxxxxx>