]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/6.6.26/netfilter-nf_tables-reject-destroy-command-to-remove.patch
Linux 6.6.26
[thirdparty/kernel/stable-queue.git] / releases / 6.6.26 / netfilter-nf_tables-reject-destroy-command-to-remove.patch
CommitLineData
ffc1c2fe
SL
1From 5afd33a659a279c05b97c099a191773736212832 Mon Sep 17 00:00:00 2001
2From: Sasha Levin <sashal@kernel.org>
3Date: Thu, 21 Mar 2024 01:27:50 +0100
4Subject: netfilter: nf_tables: reject destroy command to remove basechain
5 hooks
6
7From: Pablo Neira Ayuso <pablo@netfilter.org>
8
9[ Upstream commit b32ca27fa238ff83427d23bef2a5b741e2a88a1e ]
10
11Report EOPNOTSUPP if NFT_MSG_DESTROYCHAIN is used to delete hooks in an
12existing netdev basechain, thus, only NFT_MSG_DELCHAIN is allowed.
13
14Fixes: 7d937b107108f ("netfilter: nf_tables: support for deleting devices in an existing netdev chain")
15Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
16Signed-off-by: Sasha Levin <sashal@kernel.org>
17---
18 net/netfilter/nf_tables_api.c | 3 ++-
19 1 file changed, 2 insertions(+), 1 deletion(-)
20
21diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
22index f10419ba6e0bd..0653f1e5e8929 100644
23--- a/net/netfilter/nf_tables_api.c
24+++ b/net/netfilter/nf_tables_api.c
25@@ -2934,7 +2934,8 @@ static int nf_tables_delchain(struct sk_buff *skb, const struct nfnl_info *info,
26 nft_ctx_init(&ctx, net, skb, info->nlh, family, table, chain, nla);
27
28 if (nla[NFTA_CHAIN_HOOK]) {
29- if (chain->flags & NFT_CHAIN_HW_OFFLOAD)
30+ if (NFNL_MSG_TYPE(info->nlh->nlmsg_type) == NFT_MSG_DESTROYCHAIN ||
31+ chain->flags & NFT_CHAIN_HW_OFFLOAD)
32 return -EOPNOTSUPP;
33
34 if (nft_is_base_chain(chain)) {
35--
362.43.0
37