Yama: allow access for the current ptrace parent
authorJosh Stone <jistone@redhat.com>
Fri, 2 Dec 2016 23:49:43 +0000 (15:49 -0800)
committerJames Morris <james.l.morris@oracle.com>
Mon, 5 Dec 2016 00:48:01 +0000 (11:48 +1100)
commit50523a29d900d5a403e0352d3d7aeda6a33df25c
tree4c279a19e9a0f4521212bf444a939bb83c8d1915
parent9430066a15d6f55a3d008a6f99bb462480870207
Yama: allow access for the current ptrace parent

Under ptrace_scope=1, it's possible to have a tracee that is already
ptrace-attached, but is no longer a direct descendant.  For instance, a
forking daemon will be re-parented to init, losing its ancestry to the
tracer that launched it.

The tracer can continue using ptrace in that state, but it will be
denied other accesses that check PTRACE_MODE_ATTACH, like process_vm_rw
and various procfs files.  There's no reason to prevent such access for
a tracer that already has ptrace control anyway.

This patch adds a case to ptracer_exception_found to allow access for
any task in the same thread group as the current ptrace parent.

Signed-off-by: Josh Stone <jistone@redhat.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: James Morris <james.l.morris@oracle.com>
Cc: "Serge E. Hallyn" <serge@hallyn.com>
Cc: linux-security-module@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: James Morris <james.l.morris@oracle.com>
security/yama/yama_lsm.c