CVE-2026-97942 in Linuxinformazioni

Riassunto

di VulDB • 25/09/2026

Nel kernel Linux, la seguente vulnerabilità è stata risolta:

x86/alternatives: Escludere il text poking contro change_page_attr()

Di tanto in tanto, si può osservare il seguente BUG nel codice di patching delle alternative x86 [0]:

> kernel BUG at arch/x86/kernel/alternative.c:2576! > Oops: invalid opcode: 0000 [#1] SMP NOPTI
> CPU: 0 UID: 0 PID: 355 Comm: (udev-worker) Not tainted 7.1.3-1-default #1 PREEMPT(full) openSUSE Tumbleweed 8c1795b03ec64f997e57a8ad38b1161e3b98da64 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS unknown 02/02/2022 > RIP: 0010:__text_poke+0x2aa/0x450 > Call Trace: > <TASK> > 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 > load_module+0x1c92/0x20c0 > init_module_from_file+0xd8/0x140 > idempotent_init_module+0x100/0x2f0 > __x64_sys_finit_module+0x71/0xe0 > do_syscall_64+0xe1/0x610 > entry_SYSCALL_64_after_hwframe+0x76/0x7e

che corrisponde al seguente BUG_ON() in alternative.c:

/* * Se qualcosa è andato storto, crashare e terminare poiché i percorsi di recupero non sono implementati. */ BUG_ON(!pages[0] || (cross_page_boundary && !pages[1]));

Questo può accadere se vmalloc_to_page() fallisce, per qualsiasi motivo. Ciò può verificarsi se il text poking va in race condition con CPA, che potrebbe potenzialmente causare il collasso delle tabelle di pagina (o la rottura degli hugepage PMD). Non è un problema per la maggior parte degli utenti di vmalloc_to_page() (che possiedono esclusivamente l'intervallo allocato tramite vmalloc), ma, quando CONFIG_ARCH_HAS_EXECMEM_ROX=y, vari moduli possiedono un singolo intervallo execmem allocato con vmalloc e possono chiamare set_memory_*() in parallelo su tale intervallo. Questo può causare una race condition contro __text_poke provocando gravi problemi (havoc) in vmalloc_to_page().

Risolvere il problema escludendo CPA utilizzando il lock di lettura mmap di init_mm.

[ dhansen: Correggere l'ordinamento del SoB. Il flusso effettivo del codice qui era:
Pedro=>Lorenzo=>Mike=>Me, che è riflesso nella catena SoB attuale. Credo *che* Mike abbia semplicemente preso in carico l'aggiornamento di Lorenzo al post precedente di Pedro dal Link ]

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsabile

Linux

Prenotare

25/09/2026

Divulgazione

25/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!