CVE-2026-31397

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: mm/huge_memory: move_pages_huge_pmd() funksiyasında NULL folio istifadəsinin düzəldilməsi move_pages_huge_pmd() həm normal THP-lər, həm də böyük sıfır səhifələri üçün UFFDIO_MOVE əməliyyatını idarə edir. Böyük sıfır səhifəsi yolu üçün src_folio açıq şəkildə NULL təyin edilir və kilidləmə və rmap kimi folio əməliyyatlarını ötürmək üçün sentinel kimi istifadə olunur. Böyük sıfır səhifəsi budağında src_folio NULL olduğu üçün folio_mk_pmd(NULL, pgprot), folio_pfn() və page_to_pfn() vasitəsilə NULL ötürür. SPARSEMEM_VMEMMAP ilə bu, səssizcə yanlış bir PFN yaradır və mövcud olmayan fiziki yaddaşa işarə edən PMD quraşdırır. Digər yaddaş modellərində isə bu, NULL dereference-dir. Səhifədən etibarlı böyük sıfır foliosunu əldə etmək üçün page_folio(src_page) istifadə edin; həmin səhifə pmd_page()-dən əldə edilmişdir və bütün proses boyunca etibarlı qalır. d82d09e48219 ("mm/huge_memory: mark PMD mappings of the huge zero folio special") commit-indən sonra, köçürülmüş böyük sıfır PMD-ləri xüsusi (special) olaraq qalmalıdır ki, vm_normal_page_pmd() onları xüsusi eşləmələr kimi qəbul etməyə davam etsin. Hazırda move_pages_huge_pmd() böyük sıfır səhifəsi budağında təyinat PMD-sini yenidən qurur, bu isə CONFIG_ARCH_HAS_PTE_SPECIAL olan arxitekturalarda pmd_special() kimi PMD vəziyyətinin itirilməsinə səbəb olur. Nəticədə, vm_normal_page_pmd() köçürülmüş böyük sıfır PMD-ni normal səhifə kimi qəbul edə bilər və onun refcount-nu korlayar. PMD-ni folio-dan yenidən qurmaq əvəzinə, pmdp_huge_clear_flush() funksiyasından sonra təyinat girişini src_pmdval-dan törədin, daha sonra PMD metadata-nı move_huge_pmd() funksiyasının köçürülmüş girişlər üçün etdiyi kimi, onu soft-dirty kimi qeyd edərək və uffd-wp-ni təmizləyərək idarə edin.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc3 apr 2026
İlk görülmə3 apr 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.18.20, 6.19.10 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.16 ≤ v < 6.18.20, 6.19 ≤ v < 6.19.10, 7.06.18.20, 6.19.10

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2026-31397 · Linux Kernel · Dark Radar