Skip to content

Commit 29881bd

Browse files
ummakynessmb49
authored andcommitted
netfilter: nf_tables: unbind non-anonymous set if rule construction fails
Otherwise a dangling reference to a rule object that is gone remains in the set binding list. Fixes: 26b5a57 ("netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> CVE-2023-4015 (cherry picked from commit 3e70489) Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com> Acked-by: Tim Gardner <tim.gardner@canonical.com> Acked-by: Roxana Nicolescu <roxana.nicolescu@canonical.com> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
1 parent 1c7f04f commit 29881bd

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

net/netfilter/nf_tables_api.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5077,6 +5077,8 @@ void nf_tables_deactivate_set(const struct nft_ctx *ctx, struct nft_set *set,
50775077
nft_set_trans_unbind(ctx, set);
50785078
if (nft_set_is_anonymous(set))
50795079
nft_deactivate_next(ctx->net, set);
5080+
else
5081+
list_del_rcu(&binding->list);
50805082

50815083
set->use--;
50825084
break;

0 commit comments

Comments
 (0)