* [PATCH -stable,5.10 0/1] Netfilter fixes for -stable
@ 2025-11-17 21:40 Pablo Neira Ayuso
2025-11-17 21:40 ` [PATCH -stable,5.10 1/1] netfilter: nf_tables: reject duplicate device on updates Pablo Neira Ayuso
2025-11-17 21:40 ` [PATCH -stable,5.10 1/1] netfilter: nft_socket: fix sk refcount leaks Pablo Neira Ayuso
0 siblings, 2 replies; 4+ 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.10 -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] 4+ messages in thread
* [PATCH -stable,5.10 1/1] netfilter: nf_tables: reject duplicate device on updates
2025-11-17 21:40 [PATCH -stable,5.10 0/1] Netfilter fixes for -stable Pablo Neira Ayuso
@ 2025-11-17 21:40 ` Pablo Neira Ayuso
2025-11-18 1:05 ` Sasha Levin
2025-11-17 21:40 ` [PATCH -stable,5.10 1/1] netfilter: nft_socket: fix sk refcount leaks Pablo Neira Ayuso
1 sibling, 1 reply; 4+ 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 8e799848cbcc..dcb35be8b2af 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -7105,6 +7105,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;
@@ -7120,6 +7121,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 = net_generic(ctx->net, nf_tables_net_id);
+ 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] 4+ messages in thread
* [PATCH -stable,5.10 1/1] netfilter: nft_socket: fix sk refcount leaks
2025-11-17 21:40 [PATCH -stable,5.10 0/1] Netfilter fixes for -stable Pablo Neira Ayuso
2025-11-17 21:40 ` [PATCH -stable,5.10 1/1] netfilter: nf_tables: reject duplicate device on updates Pablo Neira Ayuso
@ 2025-11-17 21:40 ` Pablo Neira Ayuso
1 sibling, 0 replies; 4+ messages in thread
From: Pablo Neira Ayuso @ 2025-11-17 21:40 UTC (permalink / raw)
To: netfilter-devel; +Cc: gregkh, sashal, stable
From: Florian Westphal <fw@strlen.de>
commit 8b26ff7af8c32cb4148b3e147c52f9e4c695209c upstream.
We must put 'sk' reference before returning.
Fixes: 039b1f4f24ec ("netfilter: nft_socket: fix erroneous socket assignment")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
Backport patch posted by Denis Arefev.
net/netfilter/nft_socket.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/net/netfilter/nft_socket.c b/net/netfilter/nft_socket.c
index 826e5f8c78f3..07e73e50b713 100644
--- a/net/netfilter/nft_socket.c
+++ b/net/netfilter/nft_socket.c
@@ -88,13 +88,13 @@ static void nft_socket_eval(const struct nft_expr *expr,
*dest = sk->sk_mark;
} else {
regs->verdict.code = NFT_BREAK;
- return;
+ goto out_put_sk;
}
break;
case NFT_SOCKET_WILDCARD:
if (!sk_fullsock(sk)) {
regs->verdict.code = NFT_BREAK;
- return;
+ goto out_put_sk;
}
nft_socket_wildcard(pkt, regs, sk, dest);
break;
@@ -103,6 +103,7 @@ static void nft_socket_eval(const struct nft_expr *expr,
regs->verdict.code = NFT_BREAK;
}
+out_put_sk:
if (sk != skb->sk)
sock_gen_put(sk);
}
--
2.30.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH -stable,5.10 1/1] netfilter: nf_tables: reject duplicate device on updates
2025-11-17 21:40 ` [PATCH -stable,5.10 1/1] netfilter: nf_tables: reject duplicate device on updates Pablo Neira Ayuso
@ 2025-11-18 1:05 ` Sasha Levin
0 siblings, 0 replies; 4+ messages in thread
From: Sasha Levin @ 2025-11-18 1:05 UTC (permalink / raw)
To: Pablo Neira Ayuso; +Cc: netfilter-devel, gregkh, sashal, stable
This patch has been queued up for the 5.10 stable tree.
Subject: netfilter: nf_tables: reject duplicate device on updates
Queue: 5.10
Thanks for the backport!
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-11-18 1:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-17 21:40 [PATCH -stable,5.10 0/1] Netfilter fixes for -stable Pablo Neira Ayuso
2025-11-17 21:40 ` [PATCH -stable,5.10 1/1] netfilter: nf_tables: reject duplicate device on updates Pablo Neira Ayuso
2025-11-18 1:05 ` Sasha Levin
2025-11-17 21:40 ` [PATCH -stable,5.10 1/1] netfilter: nft_socket: fix sk refcount leaks Pablo Neira Ayuso
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).