diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-08-20 13:26:27 -0700 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2017-09-15 18:30:18 +0100 |
commit | b5a16892623afec2d3212b963dd688b258002b4b (patch) | |
tree | 3e6af25e7857a61348e79e846556ed11089175f1 /Documentation/email-clients.txt | |
parent | 32cb2d4a59d0512aa825e7f0352f66063482cc07 (diff) |
Sanitize 'move_pages()' permission checks
commit 197e7e521384a23b9e585178f3f11c9fa08274b9 upstream.
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>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'Documentation/email-clients.txt')
0 files changed, 0 insertions, 0 deletions