netfilter: nf_tables: disallow rule removal from chain binding
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 7 Sep 2023 06:22:33 +0000 (08:22 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 8 Sep 2023 01:25:23 +0000 (03:25 +0200)
commitf15f29fd4779be8a418b66e9d52979bb6d6c2325
treeb8e4534c4d742c8aecb1d6be56fe3e9e3415298f
parent1b36955cc048c8ff6ba448dbf4be0e52f59f2963
netfilter: nf_tables: disallow rule removal from chain binding

Chain binding only requires the rule addition/insertion command within
the same transaction. Removal of rules from chain bindings within the
same transaction makes no sense, userspace does not utilize this
feature. Replace nft_chain_is_bound() check to nft_chain_binding() in
rule deletion commands. Replace command implies a rule deletion, reject
this command too.

Rule flush command can also safely rely on this nft_chain_binding()
check because unbound chains are not allowed since 62e1e94b246e
("netfilter: nf_tables: reject unbound chain set before commit phase").

Fixes: d0e2c7de92c7 ("netfilter: nf_tables: add NFT_CHAIN_BINDING")
Reported-by: Kevin Rich <kevinrich1337@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c