• Maciej Żenczykowski's avatar
    net: allow SO_MARK with CAP_NET_RAW · 079925cc
    Maciej Żenczykowski authored
    A CAP_NET_RAW capable process can already spoof (on transmit) anything
    it desires via raw packet sockets...  There is no good reason to not
    allow it to also be able to play routing tricks on packets from its
    own normal sockets.
    
    There is a desire to be able to use SO_MARK for routing table selection
    (via ip rule fwmark) from within a user process without having to run
    it as root.  Granting it CAP_NET_RAW is much less dangerous than
    CAP_NET_ADMIN (CAP_NET_RAW doesn't permit persistent state change,
    while CAP_NET_ADMIN does - by for example allowing the reconfiguration
    of the routing tables and/or bringing up/down devices).
    
    Let's keep CAP_NET_ADMIN for persistent state changes,
    while using CAP_NET_RAW for non-configuration related stuff.
    Signed-off-by: default avatarMaciej Żenczykowski <maze@google.com>
    Link: https://lore.kernel.org/r/20211123203715.193413-1-zenczykowski@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    079925cc
sock.c 93.2 KB