CVE-2026-53109

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: powerpc/pgtable-frag: pte_frag_destroy funksiyasında səhv səhifə vəziyyətinin düzəldilməsi powerpc öz pte və pmd səhifə cədvəli fraqmentlərini izləmək üçün istinad sayğacı kimi pt_frag_refcount-dan istifadə edir. PTE cədvəli üçün, 64K səhifə ölçülü Hash halında, bir 64K səhifədə 4K ölçüsündə 16 fraqment olur. "mm: free retracted page table by RCU" [1] yamaları seriyası, shmem diapazonunda madvise MADV_COLLAPSE üçün retract_page_tables() çağırıldıqda PTE cədvəllərinin azad edilməsini təxirə salmaq üçün pte_free_defer() funksiyasını əlavə etdi. [1]: https://lore.kernel.org/all/[email protected]/ pte_free_defer() müvafiq fraqmentin folio-sunda aktiv bayrağını (active flag) təyin edir və pt_frag_refcount-u azaldan pte_fragment_free() funksiyasını çağırır. pt_frag_refcount 0-a çatdıqda (folio-dan istifadə edən aktiv fraqment qalmadıqda), folio aktiv bayrağının təyin edilib-edilmədiyi yoxlanılır; əgər təyin edilibsə, folio-nu azad etmək üçün call_rcu çağırılır, əgər təyin edilməyibsə, pte_free_now() çağırılır. İndi isə bu, nadir hallarda aşağıdakı problemə səbəb ola bilər... [ 265.351553][ T183] BUG: Bad page state in process a.out pfn:20d62 [ 265.353555][ T183] page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x20d62 [ 265.355457][ T183] flags: 0x3ffff800000100(active|node=0|zone=0|lastcpupid=0x7ffff) [ 265.358719][ T183] raw: 003ffff800000100 0000000000000000 5deadbeef0000122 0000000000000000 [ 265.360177][ T183] raw: 0000000000000000 c0000000119caf58 00000000ffffffff 0000000000000000 [ 265.361438][ T183] page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set [ 265.362572][ T183] Modules linked in: [ 265.364622][ T183] CPU: 0 UID: 0 PID: 183 Comm: a.out Not tainted 6.18.0-rc3-00141-g1ddeaaace7ff-dirty #53 VOLUNTARY [ 265.364785][ T183] Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,git-ee03ae pSeries [ 265.364908][ T183] Call Trace: [ 265.364955][ T183] [c000000011e6f7c0] [c000000001cfaa18] dump_stack_lvl+0x130/0x148 (unreliable) [ 265.365202][ T183] [c000000011e6f7f0] [c000000000794758] bad_page+0xb4/0x1c8 [ 265.365384][ T183] [c000000011e6f890] [c00000000079c020] __free_frozen_pages+0x838/0xd08 [ 265.365554][ T183] [c000000011e6f980] [c0000000000a70ac] pte_frag_destroy+0x298/0x310 [ 265.365729][ T183] [c000000011e6fa30] [c0000000000aa764] arch_exit_mmap+0x34/0x218 [ 265.365912][ T183] [c000000011e6fa80] [c000000000751698] exit_mmap+0xb8/0x820 [ 265.366080][ T183] [c000000011e6fc30] [c0000000001b1258] __mmput+0x98/0x300 [ 265.366244][ T183] [c000000011e6fc80] [c0000000001c81f8] do_exit+0x470/0x1508 [ 265.366421][ T183] [c000000011e6fd70] [c0000000001c95e4] do_group_exit+0x88/0x148 [ 265.366602][ T183] [c000000011e6fdc0] [c0000000001c96ec] pid_child_should_wake+0x0/0x178 [ 265.366780][ T183] [c000000011e6fdf0] [c00000000003a270] system_call_exception+0x1b0/0x4e0 [ 265.366958][ T183] [c000000011e6fe50] [c00000000000d05c] system_call_vectored_common+0x15c/0x2ec Səhv səhifə vəziyyəti xətası, belə bir folio paralel şəkildə do_exit() yolundan azad edilərkən (aktiv bayrağı təyin edilmiş vəziyyətdə) baş verir. ... bu, pte fraqmenti həmin folio-dan ayrıldıqda, lakin bütün fraqmentlər azad edildikdə hələ də bəzi istifadə olunmayan fraqmentlərin pt_frag_refcount-da qaldığı zaman baş verə bilər. İndi, əgər bu proses mm->context daxilində keşlənmiş pte_frag olaraq belə bir folio ilə çıxış edirsə, o zaman pte_frag_destroy() zamanı biz sadəcə pagetable_dtor() və pagetable_free() funksiyalarını çağırırıq, bu isə aktiv bayrağının təmizlənmədiyi anlamına gəlir. Bu, yuxarıdakı xətaya səbəb ola bilər. Onsuz da do_exit() yolunda olduğumuz üçün, əgər refcount 0-dırsa, pagetable_dtor() və pagetable_free() çağırmazdan əvvəl folio aktiv bayrağını sadəcə təmizləməyin uyğun olacağı düşünülür.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc24 iyn 2026
İlk görülmə24 iyn 2026

Necə düzəltmək olar

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.6 ≤ v < 6.18.33, 6.19 ≤ v < 7.0.106.18.33, 7.0.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.