CVE-2026-31397

Yüksek

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.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın3 Nis 2026
İlk görülme3 Nis 2026

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.18.20, 6.19.10 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel6.16 ≤ v < 6.18.20, 6.19 ≤ v < 6.19.10, 7.06.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.

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-2026-31397 · Linux Kernel · Dark Radar