Skip to contentSkip to conversation

Patch "kvm: nVMX: Don't allow L2 to access the hardware CR8" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Oct 2, 2017

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

kvm: nVMX: Don't allow L2 to access the hardware CR8

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
kvm-nvmx-don-t-allow-l2-to-access-the-hardware-cr8.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 51aa68e7d57e3217192d88ce90fd5b8ef29ec94f Mon Sep 17 00:00:00 2001

From: Jim Mattson <[email protected]>
Date: Tue, 12 Sep 2017 13:02:54 -0700
Subject: kvm: nVMX: Don't allow L2 to access the hardware CR8

From: Jim Mattson <[email protected]>

commit 51aa68e7d57e3217192d88ce90fd5b8ef29ec94f upstream.

If L1 does not specify the "use TPR shadow" VM-execution control in vmcs12, then L0 must specify the "CR8-load exiting" and "CR8-store exiting" VM-execution controls in vmcs02. Failure to do so will give the L2 VM unrestricted read/write access to the hardware CR8.

This fixes CVE-2017-12154.

---
 arch/x86/kvm/vmx.c |    5 +++++
 1 file changed, 5 insertions(+)
arch/x86/kvm/vmx.c +5 -0
@@ -9683,6 +9683,11 @@ static void prepare_vmcs02(struct kvm_vc
 		vmcs_write64(VIRTUAL_APIC_PAGE_ADDR,
 				page_to_phys(vmx->nested.virtual_apic_page));
 		vmcs_write32(TPR_THRESHOLD, vmcs12->tpr_threshold);
+	} else {
+#ifdef CONFIG_X86_64
+		exec_control |= CPU_BASED_CR8_LOAD_EXITING |
+				CPU_BASED_CR8_STORE_EXITING;
+#endif
 	}
 
 	if (cpu_has_vmx_msr_bitmap() &&

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/kvm-nvmx-don-t-allow-l2-to-access-the-hardware-cr8.patch