[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210217120143.6106-1-joro@8bytes.org>
Date: Wed, 17 Feb 2021 13:01:40 +0100
From: Joerg Roedel <joro@...tes.org>
To: x86@...nel.org
Cc: Joerg Roedel <joro@...tes.org>, Joerg Roedel <jroedel@...e.de>,
hpa@...or.com, Andy Lutomirski <luto@...nel.org>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Peter Zijlstra <peterz@...radead.org>,
Jiri Slaby <jslaby@...e.cz>,
Dan Williams <dan.j.williams@...el.com>,
Tom Lendacky <thomas.lendacky@....com>,
Juergen Gross <jgross@...e.com>,
Kees Cook <keescook@...omium.org>,
David Rientjes <rientjes@...gle.com>,
Cfir Cohen <cfir@...gle.com>,
Erdem Aktas <erdemaktas@...gle.com>,
Masami Hiramatsu <mhiramat@...nel.org>,
Mike Stunes <mstunes@...are.com>,
Sean Christopherson <seanjc@...gle.com>,
Martin Radev <martin.b.radev@...il.com>,
Arvind Sankar <nivedita@...m.mit.edu>,
linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
virtualization@...ts.linux-foundation.org
Subject: [PATCH 0/3] x86/sev-es: Check for trusted regs->sp in __sev_es_ist_enter()
From: Joerg Roedel <jroedel@...e.de>
Hi,
here are some changes to the Linux SEV-ES code to check whether the
value in regs->sp can be trusted, before checking whether it points to
the #VC IST stack.
Andy Lutomirski reported that it is entirely possible to reach this
function with a regs->sp value which was set by user-space. So check
for this condition and don't use regs->sp if it can't be trusted.
Also improve the comments around __sev_es_ist_enter/exit() to better
explain what these function do and why they are there.
Please review.
Thanks,
Joerg
Joerg Roedel (3):
x86/sev-es: Introduce from_syscall_gap() helper
x86/sev-es: Check if regs->sp is trusted before adjusting #VC IST
stack
x86/sev-es: Improve comments in and around __sev_es_ist_enter/exit()
arch/x86/include/asm/ptrace.h | 8 ++++++++
arch/x86/kernel/sev-es.c | 27 +++++++++++++++++++--------
arch/x86/kernel/traps.c | 3 +--
3 files changed, 28 insertions(+), 10 deletions(-)
--
2.30.0
Powered by blists - more mailing lists