CVE-2021-46978

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: KVM: nVMX: Migrasyon sonrası her zaman eVMCS eşleme girişimi yapın Enlightened VMCS kullanıldığında ve iç içe geçmiş durum (nested state) vmx_get_nested_state()/vmx_set_nested_state() ile migrate edildiğinde, KVM evmcs sayfasını hemen eşleyemez: evmcs gpa bir 'struct kvm_vmx_nested_state_hdr' değildir ve kullanıcı alanı, iç içe geçmiş durumu geri yükledikten sonra HV_X64_MSR_VP_ASSIST_PAGE değerini geri yüklemeye karar verebileceği için bunu VP assist sayfasından okuyamayız (ve örneğin QEMU tam olarak bunu yapar). eVMCS'nin eşlendiğinden emin olmak için /vmx_set_nested_state() bir KVM_REQ_GET_NESTED_STATE_PAGES isteği oluşturur. f2c7ef3ba955 ("KVM: nSVM: nested vmexit sırasında KVM_REQ_GET_NESTED_STATE_PAGES işlemini iptal et") commit'i, migrasyondan hemen sonra L2'den L1'e ani bir çıkış gerçekleştiğinde (örneğin bekleyen bir olay nedeniyle), MSR izin bit eşleminin değiştirilmediğinden emin olmak için nested_vmx_vmexit() fonksiyonuna KVM_REQ_GET_NESTED_STATE_PAGES temizleme işlemi eklemiştir. Ne yazık ki, aynı durumda nested_sync_vmcs12_to_shadow() fonksiyonunun VMCS12'deki değişiklikleri eVMCS'ye yansıtabilmesi için eVMCS'nin hala eşlenmiş olması gerekmektedir. Geçici bir çözüm olarak, nested_vmx_vmexit() içinde KVM_REQ_GET_NESTED_STATE_PAGES temizlenirken nested_get_evmcs_page() geri yüklenir. Olası hataları kolayca yayamadığımız için bu 'düzeltme' ideal olmaktan uzaktır ve yayabilsek bile muhtemelen bunu yapmak için artık çok geçtir. Migrasyon sonrası eVMCS'yi eşlemek için kullanılan tüm 'KVM_REQ_GET_NESTED_STATE_PAGES' fikri, vmx_set_nested_state() üzerinde vmptr yüklemesi gerçekleştiğinde 'yerel' yoldan çok fazla saptığımız için kırılgan görünmektedir.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın28 Şub 2024
İlk görülme28 Şub 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.10.38, 5.11.22, 5.12.5 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel5.10.13 ≤ v < 5.10.38, 5.11 ≤ v < 5.11.22, 5.12 ≤ v < 5.12.5, 5.135.10.38, 5.11.22, 5.12.5

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2021-46978 · Linux Kernel · Dark Radar