Commit 00224672 authored by Salvatore Bonaccorso's avatar Salvatore Bonaccorso

[x86] KVM: nVMX: unconditionally cancel preemption timer in free_nested (CVE-2019-7221)

parent fb1b32a3
......@@ -395,6 +395,8 @@ linux (4.19.20-1) UNRELEASED; urgency=medium
* kvm: fix kvm_ioctl_create_device() reference counting (CVE-2019-6974)
* [x86] KVM: work around leak of uninitialized stack contents
* [x86] KVM: nVMX: unconditionally cancel preemption timer in free_nested
[ Hideki Yamane ]
* [x86] Enable Touchpad support on Gemini Lake via CONFIG_PINCTRL_GEMINILAKE
From: Peter Shier <>
Date: Thu, 11 Oct 2018 11:46:46 -0700
Subject: KVM: nVMX: unconditionally cancel preemption timer in free_nested
Bugzilla: 1671904
There are multiple code paths where an hrtimer may have been started to
emulate an L1 VMX preemption timer that can result in a call to free_nested
without an intervening L2 exit where the hrtimer is normally
cancelled. Unconditionally cancel in free_nested to cover all cases.
Embargoed until Feb 7th 2019.
Signed-off-by: Peter Shier <>
Reported-by: Jim Mattson <>
Reviewed-by: Jim Mattson <>
Reported-by: Felix Wilhelm <>
Message-Id: <>
Signed-off-by: Paolo Bonzini <>
[carnil: Backport to 4.19. Adjust filename to arch/x86/kvm/vmx/vmx.c
as later refactoring moved nested code to dedicated files]
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -8469,6 +8469,7 @@ static void free_nested(struct vcpu_vmx
if (!vmx->nested.vmxon && !vmx->nested.smm.vmxon)
+ hrtimer_cancel(&vmx->nested.preemption_timer);
vmx->nested.vmxon = false;
vmx->nested.smm.vmxon = false;
......@@ -141,6 +141,7 @@ features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch
# Fix exported symbol versions
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment