CVE-2023-53756
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
08/12/2025
Last modified:
08/12/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
KVM: VMX: Fix crash due to uninitialized current_vmcs<br />
<br />
KVM enables &#39;Enlightened VMCS&#39; and &#39;Enlightened MSR Bitmap&#39; when running as<br />
a nested hypervisor on top of Hyper-V. When MSR bitmap is updated,<br />
evmcs_touch_msr_bitmap function uses current_vmcs per-cpu variable to mark<br />
that the msr bitmap was changed.<br />
<br />
vmx_vcpu_create() modifies the msr bitmap via vmx_disable_intercept_for_msr<br />
-> vmx_msr_bitmap_l01_changed which in the end calls this function. The<br />
function checks for current_vmcs if it is null but the check is<br />
insufficient because current_vmcs is not initialized. Because of this, the<br />
code might incorrectly write to the structure pointed by current_vmcs value<br />
left by another task. Preemption is not disabled, the current task can be<br />
preempted and moved to another CPU while current_vmcs is accessed multiple<br />
times from evmcs_touch_msr_bitmap() which leads to crash.<br />
<br />
The manipulation of MSR bitmaps by callers happens only for vmcs01 so the<br />
solution is to use vmx->vmcs01.vmcs instead of current_vmcs.<br />
<br />
BUG: kernel NULL pointer dereference, address: 0000000000000338<br />
PGD 4e1775067 P4D 0<br />
Oops: 0002 [#1] PREEMPT SMP NOPTI<br />
...<br />
RIP: 0010:vmx_msr_bitmap_l01_changed+0x39/0x50 [kvm_intel]<br />
...<br />
Call Trace:<br />
vmx_disable_intercept_for_msr+0x36/0x260 [kvm_intel]<br />
vmx_vcpu_create+0xe6/0x540 [kvm_intel]<br />
kvm_arch_vcpu_create+0x1d1/0x2e0 [kvm]<br />
kvm_vm_ioctl_create_vcpu+0x178/0x430 [kvm]<br />
kvm_vm_ioctl+0x53f/0x790 [kvm]<br />
__x64_sys_ioctl+0x8a/0xc0<br />
do_syscall_64+0x5c/0x90<br />
entry_SYSCALL_64_after_hwframe+0x63/0xcd
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/3ba95cc671c025d0d2a1c7d5e2930f0ff0980cf4
- https://git.kernel.org/stable/c/6baebcecf09acd19e2bab1c2911dcdba5d48a1dc
- https://git.kernel.org/stable/c/6e7bc50f97c9855da83f1478f722590defd45ff2
- https://git.kernel.org/stable/c/93827a0a36396f2fd6368a54a020f420c8916e9b
- https://git.kernel.org/stable/c/b2de2b4d4e007f9add46ea8dc06f781835e3ea9f



