netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] genetlink: fix genl_bind() invoking bind() after -EPERM
@ 2025-08-31 19:03 Alok Tiwari
  2025-09-01  1:23 ` Andrew Lunn
  0 siblings, 1 reply; 4+ messages in thread
From: Alok Tiwari @ 2025-08-31 19:03 UTC (permalink / raw)
  To: jiri, stanislaw.gruszka, andrew+netdev, davem, edumazet, kuba,
	pabeni, horms, netdev
  Cc: alok.a.tiwari

Per family bind/unbind callbacks were introduced to allow families
to track multicast group consumer presence, e.g. to start or stop
producing events depending on listeners.

However, in genl_bind() the bind() callback was invoked even if
capability checks failed and ret was set to -EPERM. This means that
callbacks could run on behalf of unauthorized callers while the
syscall still returned failure to user space.

Fix this by only invoking bind() if (!ret && family->bind)
i.e. after permission checks have succeeded.

Fixes: 3de21a8990d3 ("genetlink: Add per family bind/unbind callbacks")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
---
 net/netlink/genetlink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index 104732d34543..3b51fbd068ac 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -1836,7 +1836,7 @@ static int genl_bind(struct net *net, int group)
 		    !ns_capable(net->user_ns, CAP_SYS_ADMIN))
 			ret = -EPERM;
 
-		if (family->bind)
+		if (!ret && family->bind)
 			family->bind(i);
 
 		break;
-- 
2.50.1


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

end of thread, other threads:[~2025-09-01 18:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-31 19:03 [PATCH net] genetlink: fix genl_bind() invoking bind() after -EPERM Alok Tiwari
2025-09-01  1:23 ` Andrew Lunn
2025-09-01  9:34   ` ALOK TIWARI
2025-09-01 18:32   ` Jakub Kicinski

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).