KVM: x86: work around infinite loop in microcode when #AC is delivered
authorEric Northup <digitaleric@google.com>
Tue, 3 Nov 2015 17:03:53 +0000 (18:03 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 17 Nov 2015 15:54:46 +0000 (15:54 +0000)
commit3553e5d34d72a3aac5d967ec8b4d45a88340d679
treebd8006da580b44cd8e0f57ea616143569fee0aed
parente94e60d82b9fd6c592bfe7b939a991bfe98179ae
KVM: x86: work around infinite loop in microcode when #AC is delivered

commit 54a20552e1eae07aa240fa370a0293e006b5faed upstream.

It was found that a guest can DoS a host by triggering an infinite
stream of "alignment check" (#AC) exceptions.  This causes the
microcode to enter an infinite loop where the core never receives
another interrupt.  The host kernel panics pretty quickly due to the
effects (CVE-2015-5307).

Signed-off-by: Eric Northup <digitaleric@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
[bwh: Backported to 3.2:
 - Add definition of AC_VECTOR
 - Adjust filename, context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/svm.c
arch/x86/kvm/trace.h
arch/x86/kvm/vmx.c