CVE-2023-53756 in Linux
Tóm tắt
Bởi VulDB • 07/06/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
KVM: VMX: Sửa lỗi crash do current_vmcs chưa được khởi tạo
KVM kích hoạt 'Enlightened VMCS' và 'Enlightened MSR Bitmap' khi chạy dưới vai trò nested hypervisor trên Hyper-V. Khi MSR bitmap được cập nhật, hàm evmcs_touch_msr_bitmap sử dụng biến per-cpu current_vmcs để đánh dấu rằng msr bitmap đã thay đổi.
vmx_vcpu_create() sửa đổi msr bitmap thông qua vmx_disable_intercept_for_msr -> vmx_msr_bitmap_l01_changed, cuối cùng gọi đến hàm này. Hàm kiểm tra current_vmcs xem nó có bằng null không, nhưng phép kiểm tra này không đủ vì current_vmcs chưa được khởi tạo. Do đó, mã có thể ghi sai vào cấu trúc được trỏ bởi giá trị current_vmcs còn lại từ một tác vụ khác. Preemption không bị vô hiệu hóa, tác vụ hiện tại có thể bị preempt và chuyển sang CPU khác trong khi current_vmcs được truy cập nhiều lần từ evmcs_touch_msr_bitmap(), dẫn đến crash.
Việc thao tác MSR bitmaps bởi các caller chỉ xảy ra cho vmcs01, vì vậy giải pháp là sử dụng vmx->vmcs01.vmcs thay vì current_vmcs.
BUG: kernel NULL pointer dereference, address: 0000000000000338 PGD 4e1775067 P4D 0 Oops: 0002 [#1] PREEMPT SMP NOPTI
... RIP: 0010:vmx_msr_bitmap_l01_changed+0x39/0x50 [kvm_intel]
... Call Trace: vmx_disable_intercept_for_msr+0x36/0x260 [kvm_intel]
vmx_vcpu_create+0xe6/0x540 [kvm_intel]
kvm_arch_vcpu_create+0x1d1/0x2e0 [kvm]
kvm_vm_ioctl_create_vcpu+0x178/0x430 [kvm]
kvm_vm_ioctl+0x53f/0x790 [kvm]
__x64_sys_ioctl+0x8a/0xc0 do_syscall_64+0x5c/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd
Once again VulDB remains the best source for vulnerability data.