CVE-2026-72043
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: LoongArch: {pte,pmd}_wrprotect() funksiyalarında çatışmayan çirkli səhifə izləməsi (dirty page tracking) düzəldildi LoongArch-da aparat təminatı səhifə cədvəli gəzintisi (PTW) aktiv olduqda, CPU yazma zamanı TLB miss baş verdikdə, proqram təminatının TLB store handler-indən keçmədən birbaşa səhifə cədvəli girişində _PAGE_DIRTY bitini təyin edə bilər. Proqram təminatının TLB store handler-i (tlbex.S:254) həm _PAGE_DIRTY, həm də _PAGE_MODIFIED bitlərini birlikdə təyin edir: ori t0, t0, (_PAGE_VALID | _PAGE_DIRTY | _PAGE_MODIFIED) Aparat PTW yalnız _PAGE_DIRTY bitini təyin etdiyindən, yalnız proqram təminatı ilə idarə olunan _PAGE_MODIFIED biti dəyişdirilmədən qalır. Bu, belə bir vəziyyət yaradır ki, PTE-də _PAGE_DIRTY təyin edilmiş olur (aparat səhifənin çirkli olduğunu bilir), lakin _PAGE_MODIFIED təmiz qalır (proqram təminatı bundan xəbərdar deyil). fork()/clone() kopyala-yazdıqda (copy-on-write) __copy_present_ptes() funksiyası pte_wrprotect()-ni çağırır və bu funksiya şərtsiz olaraq həm _PAGE_WRITE, həm də _PAGE_DIRTY bitlərini sıfırlayır: pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_DIRTY); _PAGE_MODIFIED heç vaxt təyin edilmədiyindən, çirkli olma məlumatı tamamilə itirilir. Nəticədə, yaddaş təzyiqi səhifələrin geri qaytarılmasını (page reclaim) tetikledikdə, page_mkclean() / try_to_unmap() səhifəni təmiz kimi görür (yəni pte_dirty() false qaytarır) və səhifə writeback olmadan azad edilə bilər ki, bu da məlumatların korlanmasına səbəb olur. Bu problem, yazıla bilən bitlər sıfırlanmazdan əvvəl həm pte_wrprotect(), həm də pmd_wrprotect() funksiyalarında _PAGE_DIRTY bitinin _PAGE_MODIFIED bitinə ötürülməsi ilə həll edilir: if (pte_val(pte) & _PAGE_DIRTY) pte_val(pte) |= _PAGE_MODIFIED; pmd_wrprotect() düzəlişi, pmd girişlərinin eyni şəkildə emal edilməsinə ehtiyac duyulan CONFIG_TRANSPARENT_HUGEPAGE halını əhatə edir. Bu, proqram təminatının çirkli izləmə bitinin (həm _PAGE_DIRTY, həm də _PAGE_MODIFIED bitlərini oxuyan pte_dirty() və pmd_dirty() tərəfindən yoxlanılır) fork COW yazı-qoruması zamanı qorunub saxlanılmasını təmin edir. Problem, özəl anonim xəritələmələrdə "madvise(MADV_FREE), write və fork" əməliyyatlar ardıcıllığından sonra səhifələrin geri qaytarılmasını yoxlayan LTP madvise09 test keysi vasitəsilə aşkar edilmişdir.
Necə düzəltmək olar
- Linux Linux76f88650763a35cbf1384c65d66d096fa31cc58d, e8a916579e427af32f2de8213dfa23c5df6e6664, 39bb21a4bff0d70058bf752d7b5aa2e2ccc864a9, a65f49b6f7ece756394f8f0e85570020e7fd0e35, e483da960892c41fa7f0cf0d2fc2410d65a483d6, 018e9828eb523c638fa3d9bdf0fd4956b74555b2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 09cfefb7fa70c3af011b0db0a513fd80b2f18abc ≤ v < 76f88650763a35cbf1384c65d66d096fa31cc58d, 09cfefb7fa70c3af011b0db0a513fd80b2f18abc ≤ v < e8a916579e427af32f2de8213dfa23c5df6e6664, 09cfefb7fa70c3af011b0db0a513fd80b2f18abc ≤ v < 39bb21a4bff0d70058bf752d7b5aa2e2ccc864a9, 09cfefb7fa70c3af011b0db0a513fd80b2f18abc ≤ v < a65f49b6f7ece756394f8f0e85570020e7fd0e35, 09cfefb7fa70c3af011b0db0a513fd80b2f18abc ≤ v < e483da960892c41fa7f0cf0d2fc2410d65a483d6, 09cfefb7fa70c3af011b0db0a513fd80b2f18abc ≤ v < 018e9828eb523c638fa3d9bdf0fd4956b74555b2, 5.19 | 76f88650763a35cbf1384c65d66d096fa31cc58d, e8a916579e427af32f2de8213dfa23c5df6e6664, 39bb21a4bff0d70058bf752d7b5aa2e2ccc864a9, a65f49b6f7ece756394f8f0e85570020e7fd0e35, e483da960892c41fa7f0cf0d2fc2410d65a483d6, 018e9828eb523c638fa3d9bdf0fd4956b74555b2 |
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.