KVM: x86: work around leak of uninitialized stack contents
authorFuqian Huang <huangfq.daxian@gmail.com>
Thu, 12 Sep 2019 04:18:17 +0000 (12:18 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Sep 2019 07:09:35 +0000 (09:09 +0200)
commit6e60900cfa3ee5a67d04c4aa92eb04c90b9c8ed8
tree92342ae3b6e0252cd2dcb28ab521cf232bc24ea4
parent09a9f894c65b86430ce714743b3b9e3f6b330019
KVM: x86: work around leak of uninitialized stack contents

commit 541ab2aeb28251bf7135c7961f3a6080eebcc705 upstream.

Emulation of VMPTRST can incorrectly inject a page fault
when passed an operand that points to an MMIO address.
The page fault will use uninitialized kernel stack memory
as the CR2 and error code.

The right behavior would be to abort the VM with a KVM_EXIT_INTERNAL_ERROR
exit to userspace; however, it is not an easy fix, so for now just ensure
that the error code and CR2 are zero.

Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
Cc: stable@vger.kernel.org
[add comment]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/x86.c