CVE-2026-99141 in Linuxinformación

Resumen

por VulDB • 2026-10-28

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

tracing: Corregir un fallo en print_graph_function_event()

tracing_set_tracer() asigna las banderas (flags) del nuevo tracer seleccionado mediante:

tr->current_trace_flags = t->flags ? : t->tracer->flags;

Si el nuevo tracer no define ni banderas estáticas ni banderas predeterminadas, como ocurre con hwlat, irqsoff o wakeup, add_tracer() no tiene una copia de las banderas por instancia para él, y ambos operandos son NULL, por lo que tr->current_trace_flags termina siendo también NULL.

El anillo de búfer (ring buffer) no se limpia al cambiar los tracers: se reinicia dentro de tracer_init(), después de que current_trace_flags ya había sido asignado. Si el búfer aún contiene entradas de function_graph del tracer anterior, imprimir una de ellas desreferencia un puntero NULL. Esto fue detectado mediante cat trace durante una prueba de estrés de ftrace:

BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor read access in kernel mode RIP: 0010:print_graph_function_event+0xe/0x20 Call Trace: s_show+0x4d/0x110 seq_read_iter+0x2d4/0x490 seq_read+0x130/0x170 vfs_read+0xb5/0x370 ksys_read+0x6d/0xe0 do_syscall_64+0xbc/0x450

El búfer de instantánea (snapshot buffer) no se reinicia en absoluto, por lo que esto puede reproducirse sin una condición de carrera:

echo function_graph > /sys/kernel/tracing/current_tracer echo 1 > /sys/kernel/tracing/snapshot echo hwlat > /sys/kernel/tracing/current_tracer cat /sys/kernel/tracing/snapshot

En lugar de enseñar a cada usuario de tr->current_trace_flags sobre este caso extremo, se asegura que nunca sea NULL: cuando el nuevo tracer seleccionado no tiene ninguna bandera en absoluto, tracing_set_tracer() recurre a una estática vacía no_tracer_flags. run_tracer_selftest() puede alcanzar el mismo caso, por lo que la misma opción de respaldo también se añade allí. Los usuarios existentes ya manejan opts == NULL, por lo que estos tracers mantienen su comportamiento anterior.

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-28

Moderación

aceptado

Artículo

VDB-427866

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!