CVE-2026-98396
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
powerpc: Nie przywracaj KUAP w arch_exit_to_user_mode_prepare()
KUAP oznacza, że jądro nie może dotykać pamięci użytkownika, chyba że wyraźnie to zrobi
włączone. W jądrze powinno pozostać AMR_KUAP_BLOCKED. Podczas powrotu
do przestrzeni użytkownika tuż przed RFI, jądro powinno przywrócić wartość AMR użytkownika
z powrotem.
Wygląda na to, że GENERIC_ENTRY może leczyć funkcję arch_exit_to_user_mode_prepare()
jako ostatni krok architektury przed powrotem do przestrzeni użytkownika.
zatwierdzić bee25f97ad24 („powerpc: Włącz funkcję GENERIC_ENTRY”)
dlatego wywołano kuap_user_restore() z tego haka. Ale na PowerPC to
jest za wcześnie. Po irqentry_exit() / syscall_exit_to_user_mode() możemy
nadal uruchamiaj procedury wyjściowe specyficzne dla platformy.
np. fragmenty kodu pokazujące zarówno obsługę wyjątków, jak i wywołanie systemowe
obsługa jako osoby wywołujące funkcję arch_exit_to_user_mode_prepare()
co powoduje kuap_user_restore(). Poniższa ścieżka pokazuje, że wywołanie
kuap_user_restore() jest zbyt wczesna, gdy jest wywoływana
arch_exit_to_user_mode_prepare().
Obsługa wyjątków w wyjątkach-64s.S
=======================================
bl CFUNC(do_page_fault)
..DEFINE_INTERRUPT_HANDLER_ASYNC(do_page_fault)
arch_interrupt_async_enter_prepare(regs);
stan = irqentry_enter(regs);
początek_oprzyrządowania();
irq_enter_rcu();
handler(regs);
drzemka_regulacyjna_powrót(regs);
irq_exit_rcu();
oprzyrządowanie_koniec();
arch_interrupt_async_exit_prepare(regs);
irqentry_exit(regs, stan); za wcześnie
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); za wcześnie
b przerwanie_powrotu_srr
..bl CFUNC(interrupt_exit_user_prepare) już wywołuje kuap_user_restore
Ponowna próba prep_irq_for_enabled_exit() może uruchomić kod jądra z włączonymi przerwaniami. Więc
dopiero wtedy, gdy ta procedura zostanie w pełni ukończona, nastąpi KUAP użytkownika
całkowicie przywrócony, o co już dba przerwanie_exit_user_prepare().
przed powrotem.
Podobnie w przypadku obsługi wywołań systemowych w przerwaniu_64.S
=======================================================
bl CFUNC(wyjątek_wywołania_systemowego)
.Lsyscall_exit:
dodaj r4,r1,STACK_INT_FRAME_REGS
li r5,0 /* !scv */
bl CFUNC(syscall_exit_prepare)
.. kuap_assert_locked();
syscall_exit_to_user_mode(regs); za wcześnie
syscall_exit_to_user_mode_prepare(regs); za wcześnie
kuap_user_restore(regs); już dzwoni
syscall_exit_prepare(), która może włączyć przerwania, odtwarza oczekujące
przerwać i dopiero wtedy rfi. Te funkcje już przywracają KUAP
bezpośrednio przed rfi.
Należy pamiętać, że jeśli przywrócimy użytkownika AMR zbyt wcześnie, jak w bieżącym kodzie
jak pokazano z powyższych fragmentów kodu, pojawia się następujące ostrzeżenie
gdy CONFIG_PPC_KUAP_DEBUG jest włączone:
OSTRZEŻENIE: arch/powerpc/include/asm/book3s/64/kup.h:293 w przerwaniu_exit_user_prepare+0x1a0/0x1c0
Nazwa sprzętu: IBM pSeries (emulowana przez qemu) POWER10 (architektura)
PUŁAPKA: 0700
LR: c00000000000d8d4 CTR: c0000000021fe500
MSR: <SF,EE,ME,IR,DR,RI,LE> CR: 44000804 XER: 20040000
przerwanie_wyjścia_użytkownika_prepare+0x1a0/0x1c0
przerwanie_powrotu_srr_user+0x8/0x12c
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org