• Borislav Petkov (AMD)'s avatar
    x86/sev: Disable MMIO emulation from user mode · a37cd2a5
    Borislav Petkov (AMD) authored
    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: 0118b604 ("x86/sev-es: Handle MMIO String Instructions")
    Reported-by: default avatarTom Dohrmann <erbse.13@gmx.de>
    Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
    Tested-by: default avatarTom Dohrmann <erbse.13@gmx.de>
    Cc: <stable@kernel.org>
    a37cd2a5
sev.c 54.7 KB