CVE-2021-46978
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: KVM: nVMX: Miqrasiyadan sonra hər zaman eVMCS-i xəritələndirməyə cəhd edin Enlightened VMCS istifadə edildikdə və nested vəziyyət vmx_get_nested_state()/vmx_set_nested_state() vasitəsilə miqrasiya etdirildikdə, KVM evmcs səhifəsini dərhal xəritələndirə bilmir: evmcs gpa 'struct kvm_vmx_nested_state_hdr' deyil və biz onu VP assist səhifəsindən oxuya bilmirik, çünki istifadəçi sahəsi nested vəziyyəti bərpa etdikdən sonra HV_X64_MSR_VP_ASSIST_PAGE-ni də bərpa etməyə qərar verə bilər (məsələn, QEMU məhz bunu edir). eVMCS-in xəritələndirildiyindən əmin olmaq üçün /vmx_set_nested_state() KVM_REQ_GET_NESTED_STATE_PAGES sorğusunu yaradır. f2c7ef3ba955 ("KVM: nSVM: cancel KVM_REQ_GET_NESTED_STATE_PAGES on nested vmexit") commit-i, miqrasiyadan dərhal sonra L2-dən L1-ə ani çıxış baş verdikdə (məsələn, gözlənilən hadisə səbəbindən), MSR icazə bitxəritəsinin dəyişməməsini təmin etmək üçün nested_vmx_vmexit()-ə KVM_REQ_GET_NESTED_STATE_PAGES təmizlənməsini əlavə etdi. Təəssüf ki, eyni vəziyyətdə nested_sync_vmcs12_to_shadow() funksiyasının VMCS12-dəki dəyişiklikləri eVMCS-ə əks etdirməsi üçün eVMCS-in hələ də xəritələndirilmiş olması lazımdır. Müvəqqəti həll kimi, nested_vmx_vmexit()-də KVM_REQ_GET_NESTED_STATE_PAGES təmizlənərkən nested_get_evmcs_page() bərpa edilir. Bu 'düzəliş' ideal deyil, çünki mümkün xətaları asanlıqla ötürə bilmirik və ötürə bilsək belə, bu çox güman ki, artıq çox gecdir. Miqrasiyadan sonra eVMCS-i xəritələndirmək üçün bütün 'KVM_REQ_GET_NESTED_STATE_PAGES' ideyası zəif görünür, çünki vmx_set_nested_state()-də vmptr yükləməsi baş verdikdə 'yerli' yoldan çox uzaqlaşırıq.
Necə düzəltmək olar
- linux linux_kernel5.10.38, 5.11.22, 5.12.5 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.10.13 ≤ v < 5.10.38, 5.11 ≤ v < 5.11.22, 5.12 ≤ v < 5.12.5, 5.13 | 5.10.38, 5.11.22, 5.12.5 |
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.