]> git.hungrycats.org Git - linux/commit
x86/dumpstack: Don't dump kernel memory based on usermode RIP
authorJann Horn <jannh@google.com>
Tue, 28 Aug 2018 15:49:01 +0000 (17:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Sep 2018 07:29:55 +0000 (09:29 +0200)
commit8e6d15678656e3770e7d3720600a41a02d9a841f
treea5acd98afb97d5684aebce73ed30e51d80591877
parent6575b15002bfe33cc8345c6b6c3845365e154c85
x86/dumpstack: Don't dump kernel memory based on usermode RIP

commit 342db04ae71273322f0011384a9ed414df8bdae4 upstream.

show_opcodes() is used both for dumping kernel instructions and for dumping
user instructions. If userspace causes #PF by jumping to a kernel address,
show_opcodes() can be reached with regs->ip controlled by the user,
pointing to kernel code. Make sure that userspace can't trick us into
dumping kernel memory into dmesg.

Fixes: 7cccf0725cf7 ("x86/dumpstack: Add a show_ip() function")
Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Borislav Petkov <bp@suse.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: security@kernel.org
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20180828154901.112726-1-jannh@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/include/asm/stacktrace.h
arch/x86/kernel/dumpstack.c
arch/x86/mm/fault.c