• Eric Paris's avatar
    capabilites: allow the application of capability limits to usermode helpers · 17f60a7d
    Eric Paris authored
    There is no way to limit the capabilities of usermodehelpers. This problem
    reared its head recently when someone complained that any user with
    cap_net_admin was able to load arbitrary kernel modules, even though the user
    didn't have cap_sys_module.  The reason is because the actual load is done by
    a usermode helper and those always have the full cap set.  This patch addes new
    sysctls which allow us to bound the permissions of usermode helpers.
    
    /proc/sys/kernel/usermodehelper/bset
    /proc/sys/kernel/usermodehelper/inheritable
    
    You must have CAP_SYS_MODULE  and CAP_SETPCAP to change these (changes are
    &= ONLY).  When the kernel launches a usermodehelper it will do so with these
    as the bset and pI.
    
    -v2:	make globals static
    	create spinlock to protect globals
    
    -v3:	require both CAP_SETPCAP and CAP_SYS_MODULE
    -v4:	fix the typo s/CAP_SET_PCAP/CAP_SETPCAP/ because I didn't commit
    Signed-off-by: default avatarEric Paris <eparis@redhat.com>
    No-objection-from: Serge E. Hallyn <serge.hallyn@canonical.com>
    Acked-by: default avatarDavid Howells <dhowells@redhat.com>
    Acked-by: default avatarSerge E. Hallyn <serge.hallyn@canonical.com>
    Acked-by: default avatarAndrew G. Morgan <morgan@kernel.org>
    Signed-off-by: default avatarJames Morris <jmorris@namei.org>
    17f60a7d
sysctl.c 68.8 KB