Skip to contentSkip to conversation

Patch "bridge: Only call /sbin/bridge-stp for the initial network namespace" has been added to the 4.3-stable tree

PATCH [email protected] 1 participant 1 message Jan 27, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

bridge: Only call /sbin/bridge-stp for the initial network namespace

to the 4.3-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
bridge-only-call-sbin-bridge-stp-for-the-initial-network-namespace.patch
and it can be found in the queue-4.3 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Tue Jan 26 21:35:03 PST 2016

From: Hannes Frederic Sowa <[email protected]>
Date: Tue, 5 Jan 2016 10:46:00 +0100
Subject: bridge: Only call /sbin/bridge-stp for the initial network namespace

From: Hannes Frederic Sowa <[email protected]>

[ Upstream commit ff62198553e43cdffa9d539f6165d3e83f8a42bc ]

[I stole this patch from Eric Biederman. He wrote:]

Quoted 8 lines

There is no defined mechanism to pass network namespace information into /sbin/bridge-stp therefore don't even try to invoke it except for bridge devices in the initial network namespace.

It is possible for unprivileged users to cause /sbin/bridge-stp to be invoked for any network device name which if /sbin/bridge-stp does not guard against unreasonable arguments or being invoked twice on the same network device could cause problems.

[Hannes: changed patch using netns_eq]

---
 net/bridge/br_stp_if.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
net/bridge/br_stp_if.c +4 -1
@@ -130,7 +130,10 @@ static void br_stp_start(struct net_brid
 	char *envp[] = { NULL };
 	struct net_bridge_port *p;
 
-	r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC);
+	if (net_eq(dev_net(br->dev), &init_net))
+		r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC);
+	else
+		r = -ENOENT;
 
 	spin_lock_bh(&br->lock);
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.3/bridge-only-call-sbin-bridge-stp-for-the-initial-network-namespace.patch queue-4.3/udp-disallow-ufo-for-sockets-with-so_no_check-option.patch queue-4.3/unix-properly-account-for-fds-passed-over-unix-sockets.patch queue-4.3/addrconf-always-initialize-sysctl-table-data.patch