CVE-2026-99093 in Linuxinformación

Resumen

por VulDB • 2026-10-26

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

mm: no programar la liberación diferida de las tablas de páginas del kernel durante el arranque

Arrancar con un trazador (tracer) en tiempo de inicio y un filtro, por ejemplo

ftrace=function ftrace_filter=pud_free_pmd_page

provoca un fallo crítico (panic) en 7.3-rc4 tan pronto como comienza el trazador:

[ 23.531178] Starting tracer 'function'
[ 23.675800] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000038: 0000 [#1] SMP KASAN NOPTI
[ 23.819917] KASAN: null-ptr-deref in range [0x00000000000001c0-0x00000000000001c7]
[ 23.964025] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 7.3.0-rc4-fe2ec83746e5-with-fixes-v2+ #195 PREEMPT(undef)
[ 24.252248] RIP: 0010:__queue_work+0xab/0xf00
[ 25.981629] Call Trace:
[ 26.125727]
[ 26.413912] ? pagetable_free_kernel+0x20/0x120
[ 26.990283] queue_work_on+0x97/0xf0
[ 27.134382] __cpa_collapse_large_pages+0x501/0x6f0
[ 27.566662] cpa_flush+0x394/0x620
[ 27.998953] change_page_attr_set_clr+0x321/0x4a0
[ 29.151729] set_memory_rox+0xa2/0xf0
[ 29.584018] create_trampoline+0x431/0x6f0
... [ 44.343347] Kernel panic - not syncing: Attempted to kill the idle task!

El trazador en tiempo de inicio se inicia desde early_trace_init(), que se ejecuta antes de workqueue_init_early(). Hacer que su trampolín sea de solo lectura divide una página grande, y CPA (Change Page Attribute) la colapsa nuevamente inmediatamente. La tabla dividida ha sido una tabla de páginas del kernel desde el commit 9e4a3ec3411b ("x86/mm/pat: Allocate split page tables as kernel page tables"), por lo que el colapso la libera a través de pagetable_free_kernel(), lo cual encola trabajo en system_percpu_wq, que aún es NULL en ese momento. Este commit es correcto en sí mismo; solo permite que CPA llegue a pagetable_free_kernel() antes de que exista la cola de trabajos (workqueue) en la que dicha función depende.

Continuar colocando la tabla en la lista, pero no programar el trabajo mientras el sistema sigue arrancando. Un core_initcall lo programa una vez para liberar todo lo que se haya colado hasta ese momento.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-26

Moderación

aceptado

Artículo

VDB-426479

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!