]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
x86/sev: Disable MMIO emulation from user mode
authorBorislav Petkov (AMD) <bp@alien8.de>
Thu, 5 Oct 2023 09:06:36 +0000 (11:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Oct 2023 09:58:55 +0000 (11:58 +0200)
commit6797c6d09e50e7ddb1c0f8282ccfb3f1c4d63270
tree34b246a2ddadd66cba4c1b7eee1d96f0a4c43210
parent0b4e772a6a894d48e3a6e56916e4d88a781d8400
x86/sev: Disable MMIO emulation from user mode

Upstream commit: a37cd2a59d0cb270b1bba568fd3a3b8668b9d3ba

A virt scenario can be constructed where MMIO memory can be user memory.
When that happens, a race condition opens between when the hardware
raises the #VC and when the #VC handler gets to emulate the instruction.

If the MOVS is replaced with a MOVS accessing kernel memory in that
small race window, then write to kernel memory happens as the access
checks are not done at emulation time.

Disable MMIO emulation in user mode temporarily until a sensible use
case appears and justifies properly handling the race window.

Fixes: 0118b604c2c9 ("x86/sev-es: Handle MMIO String Instructions")
Reported-by: Tom Dohrmann <erbse.13@gmx.de>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Tested-by: Tom Dohrmann <erbse.13@gmx.de>
Cc: <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/sev.c