aboutsummaryrefslogtreecommitdiff
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorThomas Garnier <[email protected]>2017-06-14 18:12:02 -0700
committerThomas Gleixner <[email protected]>2017-07-08 14:05:33 +0200
commit73ac5d6a2b6ac3ae8d1e1818f3e9946f97489bc9 (patch)
tree5d2f715c0e07a23913a64b2e42ee8cc84ce5b5e6 /mm/page_alloc.c
parent5ea0727b163cb5575e36397a12eade68a1f35f24 (diff)
arm/syscalls: Check address limit on user-mode return
Ensure the address limit is a user-mode segment before returning to user-mode. Otherwise a process can corrupt kernel-mode memory and elevate privileges [1]. The set_fs function sets the TIF_SETFS flag to force a slow path on return. In the slow path, the address limit is checked to be USER_DS if needed. The TIF_SETFS flag is added to _TIF_WORK_MASK shifting _TIF_SYSCALL_WORK for arm instruction immediate support. The global work mask is too big to used on a single instruction so adapt ret_fast_syscall. [1] https://bugs.chromium.org/p/project-zero/issues/detail?id=990 Signed-off-by: Thomas Garnier <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Cc: Mark Rutland <[email protected]> Cc: [email protected] Cc: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Cc: David Howells <[email protected]> Cc: Dave Hansen <[email protected]> Cc: Miroslav Benes <[email protected]> Cc: Chris Metcalf <[email protected]> Cc: Pratyush Anand <[email protected]> Cc: Russell King <[email protected]> Cc: Petr Mladek <[email protected]> Cc: Rik van Riel <[email protected]> Cc: Kees Cook <[email protected]> Cc: Arnd Bergmann <[email protected]> Cc: Al Viro <[email protected]> Cc: Andy Lutomirski <[email protected]> Cc: Josh Poimboeuf <[email protected]> Cc: [email protected] Cc: Will Drewry <[email protected]> Cc: [email protected] Cc: Oleg Nesterov <[email protected]> Cc: Andy Lutomirski <[email protected]> Cc: Paolo Bonzini <[email protected]> Link: http://lkml.kernel.org/r/[email protected]
Diffstat (limited to 'mm/page_alloc.c')
0 files changed, 0 insertions, 0 deletions