CVE-2023-52659
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: x86/mm: pfn_to_kaddr() girişinin 64 bit tür olarak işlendiğinden emin olun 64 bit platformlarda, pfn_to_kaddr() makrosu; sanal bir adres sağlamak için fiziksel adresi hesaplarken girişi PAGE_SHIFT kadar kaydırdığında geçerli adres bitlerinin kaybolmamasını sağlamak amacıyla giriş değerinin 64 bit olmasını gerektirir. Buna bir örnek, (SEV-SNP konukları tarafından kullanılan) pvalidate_pages() fonksiyonudur; burada sayfa durumu değişim istekleri için kullanılan yapıdaki GFN 40 bitlik bir bit alanıdır, bu nedenle bu GFN alanını doğrudan pfn_to_kaddr() fonksiyonuna aktarma girişimleri, yukarıda belirtilen nedenden dolayı 1TB üzerindeki adreslerle işlem yapılırken konuk çökmelerine neden olur. Kaydırma işlemi gerçekleştirilmeden önce girişin örtük olarak beklenen 64 bit giriş türüne dönüştürülmesi için bir makro yerine satır içi (inline) bir fonksiyon kullanarak, SEV-SNP konuklarındaki bu sorun ve mevcut/gelecekteki kodlarda sorun çıkarabilecek benzer durumlar düzeltilmiştir. Sorunun çağıran tarafta olduğu savunulabilse de, diğer mimariler/makrolar bu tür durumlarla başa çıkmak için benzer yaklaşımlar benimsemiştir; örneğin ARM, girişi açıkça phys_addr_t türüne dönüştürmektedir: e48866647b48 ("ARM: 8396/1: use phys_addr_t in pfn_to_kaddr()") Ancak bir C satır içi fonksiyonu daha iyi bir çözümdür. [ mingo: Değişiklik günlüğü biraz daha geliştirildi ve __always_inline eklendi. ]
Nasıl düzeltilir
- linux linux_kernel6.6.23, 6.7.11, 6.8.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 6.5 ≤ v < 6.6.23, 6.7 ≤ v < 6.7.11, 6.8 ≤ v < 6.8.2 | 6.6.23, 6.7.11, 6.8.2 |
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.
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.