diff options
| author | Marissa Wall <marissaw@google.com> | 2017-10-09 09:37:32 -0700 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-10-14 15:55:43 +0200 |
| commit | 49d5be91a2f8bbf68a572f38588d5d8a23ac77d5 (patch) | |
| tree | 34b46b142e2ca90ebe0f467ff10e639359084aaf /include/uapi/linux | |
| parent | eaa9fe34f4b75e147f87d4323997cf9def61f9ca (diff) | |
| download | android_kernel_m2note-49d5be91a2f8bbf68a572f38588d5d8a23ac77d5.tar.gz | |
BACKPORT: Sanitize 'move_pages()' permission checks
The 'move_paghes()' system call was introduced long long ago with the
same permission checks as for sending a signal (except using
CAP_SYS_NICE instead of CAP_SYS_KILL for the overriding capability).
That turns out to not be a great choice - while the system call really
only moves physical page allocations around (and you need other
capabilities to do a lot of it), you can check the return value to map
out some the virtual address choices and defeat ASLR of a binary that
still shares your uid.
So change the access checks to the more common 'ptrace_may_access()'
model instead.
This tightens the access checks for the uid, and also effectively
changes the CAP_SYS_NICE check to CAP_SYS_PTRACE, but it's unlikely that
anybody really _uses_ this legacy system call any more (we hav ebetter
NUMA placement models these days), so I expect nobody to notice.
Famous last words.
Reported-by: Otto Ebeling <otto.ebeling@iki.fi>
Acked-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Willy Tarreau <w@1wt.eu>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
cherry-picked from: 197e7e521384a23b9e585178f3f11c9fa08274b9
This branch does not have the PTRACE_MODE_REALCREDS flag but its
default behavior is the same as PTRACE_MODE_REALCREDS. So use
PTRACE_MODE_READ instead of PTRACE_MODE_READ_REALCREDS.
Change-Id: I75364561d91155c01f78dd62cdd41c5f0f418854
Diffstat (limited to 'include/uapi/linux')
0 files changed, 0 insertions, 0 deletions
