CVE-2023-53208
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: KVM: nSVM: L1-in TSC multiplikatorunu L2 vəziyyətinə görə deyil, L1 vəziyyətinə əsasən yükləyin Nested VM-Exit emulyasiya edilərkən, əgər L1-in istədiyi nisbət cari nisbətlə uyğun gəlmirsə, L1-in TSC multiplikatorunu yükləyin; bunu L1-in L2 üçün istifadə etdiyi nisbətin standartdan fərqləndiyi halda etməyin. Funksional olaraq, son nəticə eynidir, çünki L2-nin multiplikatoru standart olduqda KVM L2-ni L1-in multiplikatoru ilə işlədəcək, yəni L1-in multiplikatorunun yükləndiyini yoxlamaq L2-nin standart olmayan multiplikatora malik olub-olmadığını yoxlamağa bərabərdir. Lakin, TSC miqyasılandırmasının (scaling) L1-ə təqdim edildiyi iddiası yanlışdır, çünki istifadəçi sahəsi MSR yazmaqla və sonra funksiyanı gizlətmək üçün qonaq CPUID-ni yeniləməklə (qonaq CPUID-nin dəyişdirilməsinə KVM_RUN-dan əvvəl hər an icazə verilir) istədiyi vaxt WARN xətasını tetikləyə bilər. Məsələn, yeni VM+vCPU-da vəziyyəti bərpa etdikdən sonra KVM-in state_test selftest testini aşağıdakıları etmək üçün modifikasiya etmək sonsuz sayda xəta mesajlarına səbəb olur: vcpu_set_msr(vcpu, MSR_AMD64_TSC_RATIO, 0); vcpu_clear_cpuid_feature(vcpu, X86_FEATURE_TSCRATEMSR); ------------[ cut here ]------------ WARNING: CPU: 10 PID: 206939 at arch/x86/kvm/svm/nested.c:1105 nested_svm_vmexit+0x6af/0x720 [kvm_amd] Call Trace: nested_svm_exit_handled+0x102/0x1f0 [kvm_amd] svm_handle_exit+0xb9/0x180 [kvm_amd] kvm_arch_vcpu_ioctl_run+0x1eab/0x2570 [kvm] kvm_vcpu_ioctl+0x4c9/0x5b0 [kvm] ? trace_hardirqs_off+0x4d/0xa0 __se_sys_ioctl+0x7a/0xc0 __x64_sys_ioctl+0x21/0x30 do_syscall_64+0x41/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd Nested VMRUN yolundan fərqli olaraq, svm->tsc_scaling_enabled yoxlamasını if-operatoruna daxil etmək yanlışdır, çünki KVM yuxarıdakı ssenaridə L1-in multiplikatorunun yükləndiyindən əmin olmalıdır. Alternativ olaraq, WARN_ON() sadəcə silinə bilərdi, lakin bu, KVM-in davranışını daha qeyri-müəyyən edərdi, məsələn, yalnız tsc_ratio_msr yoxlanıldıqda MSR_AMD64_TSC_RATIO yazmağın niyə təhlükəsiz olduğu dərhal aydın olmazdı.
Necə düzəltmək olar
- linux linux_kernel6.1.54, 6.5.4 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 5.16 ≤ v < 6.1.54, 6.2 ≤ v < 6.5.4 | 6.1.54, 6.5.4 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.