CVE-2026-98396
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: powerpc: arch_exit_to_user_mode_prepare() funksiyasında KUAP bərpa edilməsin KUAP o deməkdir ki, açıq şəkildə aktivləşdirilmədiyi təqdirdə kernel istifadəçi yaddaşına toxuna bilməz. Kernel daxilində bu, AMR_KUAP_BLOCKED vəziyyətində qalmalıdır. İstifadəçi sahəsinə (userspace) qayıdarkən, düz RFI-dan əvvəl kernel istifadəçinin AMR dəyərini bərpa etməlidir. Belə görünür ki, GENERIC_ENTRY, arch_exit_to_user_mode_prepare() funksiyasını istifadəçi sahəsinə qayıtmazdan əvvəlki son arxitektura addımı kimi qəbul edirdi. Buna görə də bee25f97ad24 ("powerpc: Enable GENERIC_ENTRY feature") commit-i həmin hook vasitəsilə kuap_user_restore() funksiyasını çağırmışdı. Lakin PowerPC-də bu çox erkəndir. irqentry_exit() / syscall_exit_to_user_mode() funksiyalarından sonra biz hələ də platformaya xas çıxış rutinlərini icra edirik. Məsələn, həm istisna idarəetməsi (exception handling), həm də sistem çağırışı idarəetməsinin kuap_user_restore() funksiyasını icra edən arch_exit_to_user_mode_prepare()-ın çağırıcıları olduğunu göstərən kod parçaları: Aşağıdakı yol göstərir ki, kuap_user_restore() funksiyasının arch_exit_to_user_mode_prepare() tərəfindən çağırılması çox erkəndir. exceptions-64s.S faylında istisna idarəetməsi ======================================= bl CFUNC(do_page_fault) ..DEFINE_INTERRUPT_HANDLER_ASYNC(do_page_fault) arch_interrupt_async_enter_prepare(regs); state = irqentry_enter(regs); instrumentation_begin(); irq_enter_rcu(); handler(regs); nap_adjust_return(regs); irq_exit_rcu(); instrumentation_end(); arch_interrupt_async_exit_prepare(regs); irqentry_exit(regs, state); <<< çox erkən irqentry_exit_to_user_mode() __exit_to_user_mode_prepare(regs, EXIT_TO_USER_MODE_WORK_IRQ); arch_exit_to_user_mode_prepare(regs, ti_work); <<< çox erkən b interrupt_return_srr .. bl CFUNC(interrupt_exit_user_prepare) <<< artıq kuap_user_restore çağırır prep_irq_for_enabled_exit() yenidən cəhdi IRQ-lar aktiv olduqda kernel kodunu işlədə bilər. Buna görə də yalnız həmin rutin tam başa çatdıqda istifadəçi KUAP-ı tam bərpa edilməlidir ki, bunu interrupt_exit_user_prepare() geri qayıtmazdan əvvəl artıq yerinə yetirir. Eynilə interrupt_64.S faylındakı sistem çağırışı idarəetməsi üçün də: ====================================================== bl CFUNC(system_call_exception) .Lsyscall_exit: addi r4,r1,STACK_INT_FRAME_REGS li r5,0 /* !scv */ bl CFUNC(syscall_exit_prepare) .. kuap_assert_locked(); syscall_exit_to_user_mode(regs); <<< çox erkən syscall_exit_to_user_mode_prepare(regs); <<< çox erkən kuap_user_restore(regs); <<< artıq çağırır syscall_exit_prepare() funksiyası IRQ-ları aktivləşdirə, gözlənilən kəsməni (interrupt) təkrar oynada və yalnız bundan sonra rfi edə bilər. Həmin funksiyalar KUAP-ı birbaşa rfi-dan əvvəl bərpa edirlər. Nəzərə alın ki, əgər yuxarıdakı kod parçalarında göstərildiyi kimi istifadəçi AMR-ını çox erkən bərpa etsək, CONFIG_PPC_KUAP_DEBUG aktiv olduqda aşağıdakı xəbərdarlıq alınır: WARNING: arch/powerpc/include/asm/book3s/64/kup.h:293 at interrupt_exit_user_prepare+0x1a0/0x1c0 Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) TRAP: 0700 LR: c00000000000d8d4 CTR: c0000000021fe500 MSR: <SF,EE,ME,IR,DR,RI,LE> CR: 44000804 XER: 20040000 interrupt_exit_user_prepare+0x1a0/0x1c0 interrupt_return_srr_user+0x8/0x12c
Necə düzəltmək olar
- Linux Linuxc8e80c19c3b9c8db83a14fab00445a6064992442, c2549d749539487239475fbc8c614a1f9244d655 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 02565a782c1ee7e8ada38ad24a698e01d6ea9ff8 ≤ v < c8e80c19c3b9c8db83a14fab00445a6064992442, 02565a782c1ee7e8ada38ad24a698e01d6ea9ff8 ≤ v < c2549d749539487239475fbc8c614a1f9244d655, 7.2 | c8e80c19c3b9c8db83a14fab00445a6064992442, c2549d749539487239475fbc8c614a1f9244d655 |
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.