summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-08-20 13:26:27 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-08-24 17:12:21 -0700
commit61332dc598c3f223678b2d7192ccf3472c544799 (patch)
tree1b28a73bdf59932200c9837a321c70d82f4b2979 /include
parentf9497d51259faf7f6ecfed393a2a75879926b77a (diff)
downloadlinux-stable-61332dc598c3f223678b2d7192ccf3472c544799.tar.gz
linux-stable-61332dc598c3f223678b2d7192ccf3472c544799.tar.bz2
linux-stable-61332dc598c3f223678b2d7192ccf3472c544799.zip
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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions