Skip to content
  • Kevin Cernekee's avatar
    netfilter: nfnetlink_cthelper: Add missing permission checks · 4b380c42
    Kevin Cernekee authored
    
    
    The capability check in nfnetlink_rcv() verifies that the caller
    has CAP_NET_ADMIN in the namespace that "owns" the netlink socket.
    However, nfnl_cthelper_list is shared by all net namespaces on the
    system.  An unprivileged user can create user and net namespaces
    in which he holds CAP_NET_ADMIN to bypass the netlink_net_capable()
    check:
    
        $ nfct helper list
        nfct v1.4.4: netlink error: Operation not permitted
        $ vpnns -- nfct helper list
        {
                .name = ftp,
                .queuenum = 0,
                .l3protonum = 2,
                .l4protonum = 6,
                .priv_data_len = 24,
                .status = enabled,
        };
    
    Add capable() checks in nfnetlink_cthelper, as this is cleaner than
    trying to generalize the solution.
    
    Signed-off-by: default avatarKevin Cernekee <cernekee@chromium.org>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    4b380c42