apparmor: allow SYS_CAP_RESOURCE to be sufficient to prlimit another task
authorJeff Mahoney <jeffm@suse.com>
Fri, 6 Nov 2015 20:17:30 +0000 (15:17 -0500)
committerJohn Johansen <john.johansen@canonical.com>
Tue, 12 Jul 2016 15:43:10 +0000 (08:43 -0700)
commitff118479a76dbece9ae1c65c7c6a3ebe9cfa73e0
treef3c092146e85c89ed03b3cc708af9ad428593025
parent38dbd7d8be36b5e68c96a24b406f3653180c1c03
apparmor: allow SYS_CAP_RESOURCE to be sufficient to prlimit another task

While using AppArmor, SYS_CAP_RESOURCE is insufficient to call prlimit
on another task. The only other example of a AppArmor mediating access to
another, already running, task (ignoring fork+exec) is ptrace.

The AppArmor model for ptrace is that one of the following must be true:
1) The tracer is unconfined
2) The tracer is in complain mode
3) The tracer and tracee are confined by the same profile
4) The tracer is confined but has SYS_CAP_PTRACE

1), 2, and 3) are already true for setrlimit.

We can match the ptrace model just by allowing CAP_SYS_RESOURCE.

We still test the values of the rlimit since it can always be overridden
using a value that means unlimited for a particular resource.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/resource.c