CVE-2026-98918
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: mm/damon/ops-common: damon_ptep_mkold() funksiyasında səhifə ilə hizalanmış (page-aligned) ünvandan istifadə edin __damon_va_prepare_access_check() region daxilində təsadüfi bayt ünvanını seçir və onu r->sampling_addr-da saxlayır. damon_va_mkold() bu ünvanı səhifə cədvəli gəzintisinə (page table walk) ötürür, o isə bunu nümunə götürüləcək səhifənin ünvanı kimi damon_ptep_mkold()-ya ötürür: damon_va_mkold(mm, r->sampling_addr) damon_va_walk_page_range(mm, addr, addr + 1) damon_mkold_pmd_entry() damon_ptep_mkold(pte, vma, addr) ptep_test_and_clear_young(vma, addr, pte) mmu_notifier_clear_young(mm, addr, addr + PAGE_SIZE) arm64 üçün, 6f0e1142173a ("arm64: mm: support batch clearing of the young flag for large folios") commit-indən əvvəl, contpte köməkçisi hizalanmış səhifə cədvəli göstəricisindən dəqiq CONT_PTES girişini gəzir və @addr-dan yalnız hər bir girişə ötürmək üçün istifadə edirdi, buna görə də hizalanmamış dəyər zərərsiz idi: ptep = contpte_align_down(ptep); addr = ALIGN_DOWN(addr, CONT_PTE_SIZE); for (i = 0; i < CONT_PTES; i++, ptep++, addr += PAGE_SIZE) İndi isə gəziləcək diapazon @addr-dan törədilir: end = addr + nr * PAGE_SIZE, CONT_PTE_SIZE-a yuvarlaqlaşdırılır. Contpte blokunun sonuncu səhifəsindəki nümunə üçün alt-səhifə ofseti 'end'-i blok sərhədinin düz önünə yerləşdirir, beləliklə yuvarlaqlaşdırma prosesi bütün bloku daha irəli aparır və gəzinti nümunə götürülmüş blokdan kənarda olan CONT_PTES girişlərində PTE_AF-ni təmizləyir. Səhifə cədvəli səhifəsindəki sonuncu blok üçün həmin girişlər həmin səhifənin sonundan kənardadır, buna görə də gəzinti növbəti səhifəyə yazır. Bu problem arm64-də (EC2 c/m6g.4xlarge) tam 7.1/7.2 kernel selftest dəsti tərəfindən aşkar edilmişdir. Kernel bəzən DAMON testində və ya ondan qısa müddət sonra çökür. Daşmanın (overrun) nəticəsi səhifə cədvəlindən sonra hansı səhifənin gəlməsindən asılıdır, ona görə də vahid bir imza yoxdur. Əgər həmin səhifə yalnız oxuna biləndirsə (read-only), yazı əməliyyatı nümunə götürmə yolunda xətaya səbəb olur: Unable to handle kernel write to read-only memory at virtual address ffff0003c5d2d000 FSC = 0x0f: level 3 permission fault CM = 0, WnR = 1, TnD = 0, TagAccess = 0 CPU: 10 UID: 0 PID: 3487 Comm: kdamond.2 pc : contpte_test_and_clear_young_ptes+0x70/0xc0 lr : damon_ptep_mkold+0x1e8/0x1f8 Call trace: contpte_test_and_clear_young_ptes+0x70/0xc0 (P) damon_mkold_pmd_entry+0x150/0x170 walk_pmd_range+0x110/0x2b0 walk_pud_range+0x10c/0x208 walk_pgd_range+0x134/0x258 __walk_page_range+0x98/0x1b0 walk_page_range_vma_unsafe+0x90/0x148 walk_page_range_vma+0x28/0x40 damon_va_walk_page_range+0x114/0x2b8 damon_va_prepare_access_checks+0xec/0x1a8 kdamond_fn+0x534/0x770 kthread+0x128/0x138 ret_from_fork+0x10/0x20 Əks halda səhifə yazıla biləndir, PTE_AF təmizlənməsi səssiz şəkildə uğurlu olur və zərər yalnız daha sonra, həmin səhifəyə sahib olan komponentdə üzə çıxır, buna görə də geri izləmə (backtrace) DAMON ilə əlaqəli deyil və işəsalmalar arasında fərqlənir. damon_ptep_mkold() daxilindəki ptep_test_and_clear_young() çağırışına səhifə ilə hizalanmış ünvan ötürün; bura DAMON-un contpte_test_and_clear_young_ptes()-ə çatacağı yeganə yerdir. Başqa heç bir hissə hizalanmış ünvanı görmür və r->sampling_addr özü olduğu kimi qalır, beləliklə nümunə götürmə və region uçot semantikası dəyişmir.
Necə düzəltmək olar
- Linux Linuxd5208de0799c506d3315b6f96d034c38e4509dbb, f166586f74dd5d9cbadaabf86ef81c8ddf6cafa7 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 6f0e1142173a54b8a18c59fc3cbae3b31ee423d9 ≤ v < d5208de0799c506d3315b6f96d034c38e4509dbb, 6f0e1142173a54b8a18c59fc3cbae3b31ee423d9 ≤ v < f166586f74dd5d9cbadaabf86ef81c8ddf6cafa7, 7.0 | d5208de0799c506d3315b6f96d034c38e4509dbb, f166586f74dd5d9cbadaabf86ef81c8ddf6cafa7 |
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.