diff options
author | Mark Grondona <mgrondona@llnl.gov> | 2013-09-11 14:24:31 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-11 15:59:01 -0700 |
commit | 73af963f9f3036dffed55c3a2898598186db1045 (patch) | |
tree | 5684deedb5074ea7caea8813b98b8224d746a0bf /fs/coredump.c | |
parent | b4c1107cc962613ea3572e5abba861a35d494b98 (diff) | |
download | linux-73af963f9f3036dffed55c3a2898598186db1045.tar.gz linux-73af963f9f3036dffed55c3a2898598186db1045.tar.bz2 linux-73af963f9f3036dffed55c3a2898598186db1045.zip |
__ptrace_may_access() should not deny sub-threads
__ptrace_may_access() checks get_dumpable/ptrace_has_cap/etc if task !=
current, this can can lead to surprising results.
For example, a sub-thread can't readlink("/proc/self/exe") if the
executable is not readable. setup_new_exec()->would_dump() notices that
inode_permission(MAY_READ) fails and then it does
set_dumpable(suid_dumpable). After that get_dumpable() fails.
(It is not clear why proc_pid_readlink() checks get_dumpable(), perhaps we
could add PTRACE_MODE_NODUMPABLE)
Change __ptrace_may_access() to use same_thread_group() instead of "task
== current". Any security check is pointless when the tasks share the
same ->mm.
Signed-off-by: Mark Grondona <mgrondona@llnl.gov>
Signed-off-by: Ben Woodard <woodard@redhat.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/coredump.c')
0 files changed, 0 insertions, 0 deletions