macvlan: disable SIOCSHWTSTAMP in container
authorHangbin Liu <liuhangbin@gmail.com>
Thu, 9 May 2019 06:54:08 +0000 (14:54 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 May 2019 16:30:35 +0000 (09:30 -0700)
Miroslav pointed that with NET_ADMIN enabled in container, a normal user
could be mapped to root and is able to change the real device's rx
filter via ioctl on macvlan, which would affect the other ptp process on
host. Fix it by disabling SIOCSHWTSTAMP in container.

Fixes: 254c0a2bfedb ("macvlan: pass get_ts_info and SIOC[SG]HWTSTAMP ioctl to real device")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macvlan.c

index b395423b19bcef0f434ed37ea9713e22909c6a1f..92efa93649f0e0a0fe031a3528854f26e6d333b3 100644 (file)
@@ -836,6 +836,8 @@ static int macvlan_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 
        switch (cmd) {
        case SIOCSHWTSTAMP:
+               if (!net_eq(dev_net(dev), &init_net))
+                       break;
        case SIOCGHWTSTAMP:
                if (netif_device_present(real_dev) && ops->ndo_do_ioctl)
                        err = ops->ndo_do_ioctl(real_dev, &ifrr, cmd);