net: Use netlink_ns_capable to verify the permisions of netlink messages
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 23 Apr 2014 21:29:27 +0000 (14:29 -0700)
committerJiri Slaby <jslaby@suse.cz>
Mon, 23 Jun 2014 08:27:57 +0000 (10:27 +0200)
commit50b8b6e75fa0c08cef1e1ed30a7ab91f05bcb779
treec103d35936dd292b3bbede716ffb1cf1e281d13a
parent3b175c7b361838fe80fdd000bf1f0970ca8fbdaf
net: Use netlink_ns_capable to verify the permisions of netlink messages

[ Upstream commit 90f62cf30a78721641e08737bda787552428061e ]

It is possible by passing a netlink socket to a more privileged
executable and then to fool that executable into writing to the socket
data that happens to be valid netlink message to do something that
privileged executable did not intend to do.

To keep this from happening replace bare capable and ns_capable calls
with netlink_capable, netlink_net_calls and netlink_ns_capable calls.
Which act the same as the previous calls except they verify that the
opener of the socket had the desired permissions as well.

Reported-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
19 files changed:
crypto/crypto_user.c
drivers/connector/cn_proc.c
drivers/scsi/scsi_netlink.c
kernel/audit.c
net/can/gw.c
net/core/rtnetlink.c
net/dcb/dcbnl.c
net/decnet/dn_dev.c
net/decnet/dn_fib.c
net/decnet/netfilter/dn_rtmsg.c
net/netfilter/nfnetlink.c
net/netlink/genetlink.c
net/packet/diag.c
net/phonet/pn_netlink.c
net/sched/act_api.c
net/sched/cls_api.c
net/sched/sch_api.c
net/tipc/netlink.c
net/xfrm/xfrm_user.c