All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH -stable,5.15 0/1] Netfilter fixes for -stable
@ 2025-11-17 21:40 Pablo Neira Ayuso
  2025-11-17 21:40 ` [PATCH -stable,5.15 1/1] netfilter: nf_tables: reject duplicate device on updates Pablo Neira Ayuso
  0 siblings, 1 reply; 3+ messages in thread
From: Pablo Neira Ayuso @ 2025-11-17 21:40 UTC (permalink / raw)
  To: netfilter-devel; +Cc: gregkh, sashal, stable

Hi Greg, Sasha,
 
This batch contains backported fixes for 5.15 -stable.
 
The following list shows the backported patch:
 
1) cf5fb87fcdaa ("netfilter: nf_tables: reject duplicate device on updates")
   This only includes the flowtable chunk because chain cannot be updated
   in this kernel version.

Please, apply,
Thanks

Pablo Neira Ayuso (1):
  netfilter: nf_tables: reject duplicate device on updates

 net/netfilter/nf_tables_api.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

-- 
2.47.3


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH -stable,5.15 1/1] netfilter: nf_tables: reject duplicate device on updates
  2025-11-17 21:40 [PATCH -stable,5.15 0/1] Netfilter fixes for -stable Pablo Neira Ayuso
@ 2025-11-17 21:40 ` Pablo Neira Ayuso
  2025-11-18  0:58   ` Sasha Levin
  0 siblings, 1 reply; 3+ messages in thread
From: Pablo Neira Ayuso @ 2025-11-17 21:40 UTC (permalink / raw)
  To: netfilter-devel; +Cc: gregkh, sashal, stable

commit cf5fb87fcdaaaafec55dcc0dc5a9e15ead343973 upstream.

A chain/flowtable update with duplicated devices in the same batch is
possible. Unfortunately, netdev event path only removes the first
device that is found, leaving unregistered the hook of the duplicated
device.

Check if a duplicated device exists in the transaction batch, bail out
with EEXIST in such case.

WARNING is hit when unregistering the hook:

 [49042.221275] WARNING: CPU: 4 PID: 8425 at net/netfilter/core.c:340 nf_hook_entry_head+0xaa/0x150
 [49042.221375] CPU: 4 UID: 0 PID: 8425 Comm: nft Tainted: G S                  6.16.0+ #170 PREEMPT(full)
 [...]
 [49042.221382] RIP: 0010:nf_hook_entry_head+0xaa/0x150

Fixes: 78d9f48f7f44 ("netfilter: nf_tables: add devices to existing flowtable")
Fixes: b9703ed44ffb ("netfilter: nf_tables: support for adding new devices to an existing netdev chain")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
---
 net/netfilter/nf_tables_api.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 33d03340d9fc..91b012e476be 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -7893,6 +7893,7 @@ static int nft_flowtable_update(struct nft_ctx *ctx, const struct nlmsghdr *nlh,
 {
 	const struct nlattr * const *nla = ctx->nla;
 	struct nft_flowtable_hook flowtable_hook;
+	struct nftables_pernet *nft_net;
 	struct nft_hook *hook, *next;
 	struct nft_trans *trans;
 	bool unregister = false;
@@ -7908,6 +7909,20 @@ static int nft_flowtable_update(struct nft_ctx *ctx, const struct nlmsghdr *nlh,
 		if (nft_hook_list_find(&flowtable->hook_list, hook)) {
 			list_del(&hook->list);
 			kfree(hook);
+			continue;
+		}
+
+		nft_net = nft_pernet(ctx->net);
+		list_for_each_entry(trans, &nft_net->commit_list, list) {
+			if (trans->msg_type != NFT_MSG_NEWFLOWTABLE ||
+			    trans->ctx.table != ctx->table ||
+			    !nft_trans_flowtable_update(trans))
+				continue;
+
+			if (nft_hook_list_find(&nft_trans_flowtable_hooks(trans), hook)) {
+				err = -EEXIST;
+				goto err_flowtable_update_hook;
+			}
 		}
 	}
 
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH -stable,5.15 1/1] netfilter: nf_tables: reject duplicate device on updates
  2025-11-17 21:40 ` [PATCH -stable,5.15 1/1] netfilter: nf_tables: reject duplicate device on updates Pablo Neira Ayuso
@ 2025-11-18  0:58   ` Sasha Levin
  0 siblings, 0 replies; 3+ messages in thread
From: Sasha Levin @ 2025-11-18  0:58 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: netfilter-devel, gregkh, sashal, stable

This patch has been queued up for the 5.15 stable tree.

Subject: netfilter: nf_tables: reject duplicate device on updates
Queue: 5.15

Thanks for the backport!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-11-18  0:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-17 21:40 [PATCH -stable,5.15 0/1] Netfilter fixes for -stable Pablo Neira Ayuso
2025-11-17 21:40 ` [PATCH -stable,5.15 1/1] netfilter: nf_tables: reject duplicate device on updates Pablo Neira Ayuso
2025-11-18  0:58   ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.