CVE-2026-31397
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.
Necə düzəltmək olar
- linux linux_kernel6.18.20, 6.19.10 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 6.16 ≤ v < 6.18.20, 6.19 ≤ v < 6.19.10, 7.0 | 6.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.
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.