CVE-2024-35980

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: arm64: tlb: TLBI RANGE operandı düzeltildi KVM/arm64, canlı migrasyon sırasında kirli sayfalar VMM tarafından toplandığında ve sayfa tablosu girişleri yazma korumalı hale geldiğinde TLB'lerin temizlenmesi için TLBI RANGE özelliğine güvenir. Ne yazık ki, 117940aa6e5f ("KVM: arm64: Define kvm_tlb_flush_vmid_range()") commit'i nedeniyle TLBI RANGE talimatına iletilen operan doğru şekilde düzenlenmemektedir. Bu durum, TLB'lerin tamamen temizlenmemesi ve bazı kirli sayfaların atlanması nedeniyle canlı migrasyondan sonra hedef VM üzerinde çökmeye yol açmaktadır. Örneğin, 0x40000000 (1GB) adresinden başlayan 8GB belleğin atandığı bir VM olduğunu varsayalım. Host sisteminin temel sayfa boyutunun 4KB olduğu unutulmamalıdır. Migrasyonun ortasında, TLB'leri temizlemek için kvm_tlb_flush_vmid_range() yürütülür. Bu fonksiyon, __kvm_tlb_flush_vmid_range() ve __flush_s2_tlb_range_op() fonksiyonlarına argüman olarak MAX_TLBI_RANGE_PAGES değerini iletir. MAX_TLBI_RANGE_PAGES değerine karşılık gelen SCALE#3 ve NUM#31, __TLBI_RANGE_NUM() tarafından desteklenmemektedir. Bu özel durumda, SCALE#3/2/1/0 için __TLBI_RANGE_NUM() fonksiyonundan -1 döner ve @scale değişkeni underflow olup -9 olana kadar __flush_tlb_range_op() içerisindeki döngü tarafından reddedilir; ardından operan olarak 0xffff708000040000 ayarlanır. Operan, geçersiz @scale ve @num değerlerine göre __TLBI_VADDR_RANGE() tarafından düzenlendiği için yanlıştır. Bu sorun, SCALE#3 ve NUM#31 kombinasyonunu destekleyecek şekilde __TLBI_RANGE_NUM() genişletilerek düzeltilmiştir. Yapılan değişikliklerle makrodan [-1 30] yerine [-1 31] dönebilir; bu da yukarıdaki örnekte 0x200000 sayfalık TLB'lerin SCALE#3 ve NUM#31 ile tek seferde temizlenebileceği anlamına gelir. Artık kimse tarafından kullanılmadığı için TLBI_RANGE_MASK makrosu kaldırılmıştır. Yorumlar da buna göre düzenlenmiştir.

ÖnemYüksek
CVSS8.4
İstismar olasılığı—
ÜrünLinux Kernel
Yayın20 May 2024
İlk görülme20 May 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.6.29, 6.8.7 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel6.6 ≤ v < 6.6.29, 6.7 ≤ v < 6.8.7, 6.96.6.29, 6.8.7

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-2024-35980 · Linux Kernel · Dark Radar