CVE-2026-31397
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: mm/huge_memory: move_pages_huge_pmd() fonksiyonundaki NULL folio kullanımı düzeltildi move_pages_huge_pmd(), hem normal THP'ler hem de dev sıfır sayfaları için UFFDIO_MOVE işlemini yönetir. Dev sıfır sayfası yolu için src_folio açıkça NULL olarak ayarlanmıştır ve kilitleme ile rmap gibi folio işlemlerini atlamak için bir işaretçi (sentinel) olarak kullanılır. Dev sıfır sayfası dalında src_folio NULL olduğu için folio_mk_pmd(NULL, pgprot), folio_pfn() ve page_to_pfn() üzerinden NULL değerini geçirir. SPARSEMEM_VMEMMAP ile bu durum sessizce hatalı bir PFN üretir ve mevcut olmayan fiziksel belleğe işaret eden bir PMD yükler. Diğer bellek modellerinde ise bu bir NULL dereference hatasıdır. pmd_page() aracılığıyla elde edilen ve süreç boyunca geçerli kalan sayfadan, geçerli dev sıfır foliosunu almak için page_folio(src_page) kullanın. d82d09e48219 ("mm/huge_memory: mark PMD mappings of the huge zero folio special") commit'inden sonra, taşınan dev sıfır PMD'leri, vm_normal_page_pmd() fonksiyonunun bunları özel eşlemeler olarak görmeye devam etmesi için özel kalmalıdır. move_pages_huge_pmd() şu anda dev sıfır sayfası dalında hedef PMD'yi yeniden oluşturmaktadır; bu durum, CONFIG_ARCH_HAS_PTE_SPECIAL özelliğine sahip mimarilerde pmd_special() gibi PMD durumlarının kaybolmasına neden olur. Sonuç olarak, vm_normal_page_pmd() taşınan dev sıfır PMD'sini normal bir sayfa olarak değerlendirebilir ve referans sayacını (refcount) bozabilir. PMD'yi folio'dan yeniden oluşturmak yerine, pmdp_huge_clear_flush() işleminden sonra hedef girişi src_pmdval'dan türetin; ardından PMD meta verilerini, onu soft-dirty olarak işaretleyip uffd-wp'yi temizleyerek move_huge_pmd()'nin taşınan girişler için yaptığı şekilde yönetin.
Nasıl düzeltilir
- linux linux_kernel6.18.20, 6.19.10 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.16 ≤ v < 6.18.20, 6.19 ≤ v < 6.19.10, 7.0 | 6.18.20, 6.19.10 |
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.