linux/arch/s390/mm
Sven Schnelle 0b38b5e1d0 s390: prevent leaking kernel address in BEAR
When userspace executes a syscall or gets interrupted,
BEAR contains a kernel address when returning to userspace.
This make it pretty easy to figure out where the kernel is
mapped even with KASLR enabled. To fix this, add lpswe to
lowcore and always execute it there, so userspace sees only
the lowcore address of lpswe. For this we have to extend
both critical_cleanup and the SWITCH_ASYNC macro to also check
for lpswe addresses in lowcore.

Fixes: b2d24b97b2 ("s390/kernel: add support for kernel address space layout randomization (KASLR)")
Cc: <stable@vger.kernel.org> # v5.2+
Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2020-03-10 15:16:25 +01:00
..
Makefile s390/mm: convert to the generic get_user_pages_fast code 2019-04-23 16:30:04 +02:00
cmm.c s390/cmm: fix information leak in cmm_timeout_handler() 2019-10-31 17:26:48 +01:00
dump_pagetables.c s390/mm: fix dump_pagetables top level page table walking 2019-08-06 13:58:34 +02:00
extmem.c s390/extmem: use refcount_t for refcount 2019-08-21 12:41:43 +02:00
fault.c s390/mm: mark private defines for vm_fault_t as such 2020-03-04 11:15:50 +01:00
gmap.c hmm related patches for 5.4 2019-09-21 10:07:42 -07:00
hugetlbpage.c s390/mm: fix dynamic pagetable upgrade for hugetlbfs 2020-01-30 13:07:54 +01:00
init.c mm/memory_hotplug: shrink zones when offlining memory 2020-01-04 13:55:08 -08:00
kasan_init.c s390/kasan: add KASAN_VMALLOC support 2019-12-11 19:56:59 +01:00
maccess.c s390: disable preemption when switching to nodat stack with CALL_ON_STACK 2019-11-30 10:52:45 +01:00
mmap.c s390/mm: mmap base does not depend on ADDR_NO_RANDOMIZE personality 2019-06-04 15:03:53 +02:00
page-states.c s390/cmma: reuse kstrtobool for option value parsing 2019-08-26 12:51:18 +02:00
pageattr.c s390/mm: Clear huge page storage keys on enable_skey 2018-07-30 11:20:18 +01:00
pgalloc.c mm: treewide: clarify pgtable_page_{ctor,dtor}() naming 2019-09-26 10:10:44 -07:00
pgtable.c s390/mm: silence compiler warning when compiling without CONFIG_PGSTE 2019-04-10 17:48:28 +02:00
vmem.c s390: prevent leaking kernel address in BEAR 2020-03-10 15:16:25 +01:00