CVE-2026-43315 in Linux
الملخص
بحسب VulDB • 13/05/2026
في نواة لينكس، تم حل الثغرة التالية:
KVM: nSVM: إزالة تحذير (WARN) قابل للتفعيل من قبل المستخدم عند نجاح الدالة nested_svm_load_cr3()
إزالة التحذير في svm_set_nested_state() عند فشل الدالة nested_svm_load_cr3()، حيث إنه من السهل جداً تفعيله من مساحة المستخدم (userspace) عن طريق تعديل معرف المعالج (CPUID) بعد تحميل سجل CR3. على سبيل المثال، تعديل اختبار استعادة الحالة الذاتي (selftest) كما يلي:
--- tools/testing/selftests/kvm/x86/state_test.c +++ tools/testing/selftests/kvm/x86/state_test.c @@ -280,7 +280,16 @@ int main(int argc, char *argv[])
/* استعادة الحالة في آلة افتراضية جديدة. */ vcpu = vm_recreate_with_one_vcpu(vm); - vcpu_load_state(vcpu, state); + + if (stage == 4) {
+ state->sregs.cr3 = BIT(44); + vcpu_load_state(vcpu, state); + + vcpu_set_cpuid_property(vcpu, X86_PROPERTY_MAX_PHY_ADDR, 36); + __vcpu_nested_state_set(vcpu, &state->nested); + } else {
+ vcpu_load_state(vcpu, state); + }
/* * استعادة حالة XSAVE في vCPU وهمي، أولاً دون القيام بـ
ينتج عنه:
WARNING: CPU: 30 PID: 938 at arch/x86/kvm/svm/nested.c:1877 svm_set_nested_state+0x34a/0x360 [kvm_amd]
Modules linked in: kvm_amd kvm irqbypass [last unloaded: kvm]
CPU: 30 UID: 1000 PID: 938 Comm: state_test Tainted: G W 6.18.0-rc7-58e10b63777d-next-vm Tainted: [W]=WARN
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:svm_set_nested_state+0x34a/0x360 [kvm_amd]
Call Trace: kvm_arch_vcpu_ioctl+0xf33/0x1700 [kvm]
kvm_vcpu_ioctl+0x4e6/0x8f0 [kvm]
__x64_sys_ioctl+0x8f/0xd0 do_syscall_64+0x61/0xad0 entry_SYSCALL_64_after_hwframe+0x4b/0x53
ما عليك سوى حذف التحذير (WARN) بدلاً من محاولة منع مساحة المستخدم من إدخال حالة "غير قانونية" إلى CR3. سواء كان ذلك جيداً أم سيئاً، فإن واجهة برمجة التطبيقات (ABI) الخاصة بـ KVM تسمح لمساحة المستخدم بتعيين CPUID بعد SREGS، والعكس صحيح، وKVM متساهلة جداً فيما يتعلق بـ CPUID الخاص بالضيف (guest). أي أن محاولة فرض نموذج المعالج الافتراضي عند تعيين CPUID قد يؤدي إلى كسر التطبيقات في مساحة المستخدم. نظراً لأن التحذير لا يوفر أي حماية ذات معنى لـ KVM ولا يفيد مساحة المستخدم، فإننا نحذفه ببساطة، حتى وإن كانت احتمالية كسر التطبيقات في مساحة المستخدم ضئيلة جداً.
تم حذف سطر فارغ زائد بشكل انتهازی.
Be aware that VulDB is the high quality source for vulnerability data.