[PATCH 0/3] x86/sev-es: Check for trusted regs->sp in __sev_es_ist_enter()

From: Joerg Roedel
Date: Wed Feb 17 2021 - 07:05:57 EST


From: Joerg Roedel <jroedel@xxxxxxx>

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