CVE-2026-97942 in Linuxinformación

Resumen

por VulDB • 2026-09-25

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

x86/alternatives: Excluir text poking contra change_page_attr()

De vez en cuando, puede observarse el siguiente BUG en el código de parcheo de alternativas 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

lo cual coincide con el siguiente BUG_ON() en alternative.c:

/* * Si algo sale mal, crash and burn ya que las rutas de recuperación no están implementadas. */ BUG_ON(!pages[0] || (cross_page_boundary && !pages[1]));

Esto puede ocurrir si vmalloc_to_page() falla por cualquier motivo. Esto puede suceder si text poking entra en carrera con CPA, lo cual podría resultar en el colapso de las tablas de páginas (o la ruptura de hugepages PMD). No es un problema para la mayoría de los usuarios de vmalloc_to_page() (ellos poseen exclusivamente el rango asignado mediante vmalloc), pero, cuando CONFIG_ARCH_HAS_EXECMEM_ROX=y, varios módulos poseen un único rango execmem asignado con vmalloc y pueden llamar a set_memory_*() en paralelo sobre él. Esto puede ocurrir al entrar en carrera contra __text_poke y causar caos en vmalloc_to_page().

Solucionarlo excluyendo CPA mediante el bloqueo de lectura mmap de init_mm.

[ dhansen: Arreglar el orden del SoB. El flujo real del código aquí fue:
Pedro=>Lorenzo=>Mike=>Me, lo cual se refleja ahora en la cadena SoB. Creo que Mike simplemente recogió la actualización de Lorenzo a la publicación anterior de Pedro desde el Link ]

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

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-09-25

Moderación

aceptado

Artículo

VDB-409975

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!