]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
netfilter: ipset: fix a potential dump-destroy race
authorJozsef Kadlecsik <kadlec@netfilter.org>
Thu, 14 May 2026 08:55:10 +0000 (10:55 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sat, 16 May 2026 10:19:56 +0000 (12:19 +0200)
commit53d7fd878c28b28e03769071d1f28ef031a060ad
tree3addf8508b4e1a4157f38bb2fdec7ecb2a64292c
parent5522d65d81a711c60a9969d37a485d48d0ad1496
netfilter: ipset: fix a potential dump-destroy race

When dumping sets in order to create the proper order for restore,
the list type of sets dumped last. Therefore internally we run the
dumping loop twice: first with all non-list type of sets and skipping
the list type ones and then secondly for the list type of sets.

Sashiko noticed that there's a potential race between dump and destroy
if in the first loop the last set was a list type of set: its pointer
remains unreferenced and a concurrent destroy can free it.

Fix the issue by resetting the variable holding the pointer.

Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/ipset/ip_set_core.c