CVE-2026-97942
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
x86/alternatywy: Wyklucz wtykanie tekstu w funkcję Change_page_attr()
Od czasu do czasu można zaobserwować następujący BŁĄD
w kodzie łatania alternatyw x86 [0]:
> BŁĄD jądra w arch/x86/kernel/alternative.c:2576!
> Ups: nieprawidłowy kod operacji: 0000 [#1] SMP NOPTI
> Procesor: 0 UID: 0 PID: 355 Comm: (udev-worker) Nieskażony 7.1.3-1-default #1 PREEMPT (pełny) openSUSE Tumbleweed 8c1795b03ec64f997e57a8ad38b1161e3b98da64
> Nazwa sprzętu: QEMU Standard PC (i440FX + PIIX, 1996), BIOS nieznany 02.02.2022
> RIP: 0010:__text_poke+0x2aa/0x450
> Zadzwoń do śledzenia:
> <ZADANIE>
> smp_text_poke_batch_finish+0x2a7/0x320
> __static_call_transform+0xb7/0x220
> arch_static_call_transform+0x5b/0xb0
> __static_call_init+0xe9/0x270
> static_call_module_notify+0x11f/0x150
> notifier_call_chain+0x61/0xe0
> blocking_notifier_call_chain_robust+0x63/0xc0
> moduł_ładujący+0x1c92/0x20c0
> moduł_init_z_pliku+0xd8/0x140
> idempotent_init_module+0x100/0x2f0
> __x64_sys_finit_module+0x71/0xe0
> do_syscall_64+0xe1/0x610
> wpis_SYSCALL_64_after_hwframe+0x76/0x7e
co pasuje do następującego BUG_ON() w alternatywa.c:
/*
* Jeśli coś poszło nie tak, nastąpi awaria i wypalenie, ponieważ ścieżki odzyskiwania nie są
* wdrożone.
*/
BŁĄD_ON(!pages[0] || (cross_page_boundary && !pages[1]));
Może się to zdarzyć, jeśli z dowolnego powodu funkcja vmalloc_to_page() nie powiedzie się. Takie rzeczy mogą się zdarzyć
jeśli wtykanie tekstu ściga się z CPA, co może spowodować zawalenie się
tabel stron (lub łamanie ogromnych stron PMD). Dla większości nie stanowi to problemu
użytkownicy funkcji vmalloc_to_page() (posiadają wyłącznie zakres vmalloc), ale kiedy
CONFIG_ARCH_HAS_EXECMEM_ROX=y, różne moduły posiadają pojedynczy plik execmem vmalloc
zakres i może wywoływać na nim równolegle funkcję set_memory_*(). Może się to zdarzyć
ścigaj się z __text_poke i siej spustoszenie w vmalloc_to_page().
Napraw to, wykluczając z CPA, używając blokady odczytu init_mm mmap.
[ dhansen: Popraw porządek w SoB. Rzeczywisty przepływ kodu był tutaj następujący:
Pedro=>Lorenzo=>Mike=>Ja, co znajduje odzwierciedlenie w łańcuchu SoB
teraz. *Wierzę*, że Mike po prostu odebrał aktualizację Lorenzo
Post Pedro z linku ]
>_ 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