]> git.baikalelectronics.ru Git - kernel.git/commit
x86, kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit
authorAndy Lutomirski <luto@amacapital.net>
Sat, 6 Dec 2014 03:03:28 +0000 (19:03 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 10 Dec 2014 11:49:39 +0000 (12:49 +0100)
commita22535d9decf9c747c83da89634b2b36f4cae9d0
treebb0d1cb44bea9cfed3c3d57185219e1249558b1c
parente1b0953db527a05ff901566e7d386685b77ee09a
x86, kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit

paravirt_enabled has the following effects:

 - Disables the F00F bug workaround warning.  There is no F00F bug
   workaround any more because Linux's standard IDT handling already
   works around the F00F bug, but the warning still exists.  This
   is only cosmetic, and, in any event, there is no such thing as
   KVM on a CPU with the F00F bug.

 - Disables 32-bit APM BIOS detection.  On a KVM paravirt system,
   there should be no APM BIOS anyway.

 - Disables tboot.  I think that the tboot code should check the
   CPUID hypervisor bit directly if it matters.

 - paravirt_enabled disables espfix32.  espfix32 should *not* be
   disabled under KVM paravirt.

The last point is the purpose of this patch.  It fixes a leak of the
high 16 bits of the kernel stack address on 32-bit KVM paravirt
guests.  Fixes CVE-2014-8134.

Cc: stable@vger.kernel.org
Suggested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kernel/kvm.c
arch/x86/kernel/kvmclock.c