kernel: deny swconfig set requests for unprivileged users
authorJo-Philipp Wich <jo@mein.io>
Fri, 10 Jun 2016 22:53:16 +0000 (00:53 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 10 Jun 2016 22:53:19 +0000 (00:53 +0200)
commit442db0d6d8614c354c1c1ce705dd57d020680bac
tree4b4ada48c6c5bc2015b2a600a1816231d48631b1
parentdd182011e1acabc94169b85f3bc63efbab72ddd4
kernel: deny swconfig set requests for unprivileged users

The swconfig kernel infrastructure fails to do any permissions checks when
changing settings. As such an ordinary user account on a device with a
switch can change switch settings without any special permissions.
Routers generally have few non-admin users so this isn't a big hole, but it
is a security hole. Likely the greatest danger is for multifunction devices
which have a lot of extra daemons, compromising a low-security daemon would
allow one to modify switch settings and cause the router/switch to appear to
lock-up (or cause other sorts of troublesome nyetwork behavior).

Implement a check for CAP_NET_ADMIN in swconfig_set_attr() and deny any
requests originating from user contexts lacking this capability.

Reported-by: Elliott Mitchell <ehem+openwrt@m5p.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
target/linux/generic/files/drivers/net/phy/swconfig.c