CVE-2026-99140 in Linuxinformación

Resumen

por VulDB • 2026-10-28

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

tracing: Corregir las marcas temporales (timestamps) de los triggers hist para eventos en búfer

Syzkaller activó una advertencia WARN_ON_ONCE(!nest):

WARNING: kernel/trace/ring_buffer.c:821 en ring_buffer_event_time_stamp Trazado de la llamada (Call trace): ring_buffer_event_time_stamp hist_field_timestamp hist_fn_call event_hist_trigger event_triggers_call __event_trigger_test_discard trace_event_buffer_commit do_trace_event_raw_event_sched_switch trace_event_raw_event_sched_switch

La advertencia es reproducible de forma probabilística y está relacionada con syzkaller ejecutando los siguientes comandos:

echo 'prev_pid == 999999' > events/sched/sched_switch/filter echo 'hist:keys=common_timestamp' > events/sched/sched_switch/trigger

El proceso específico de activación es el siguiente:

CPU 0 CPU 1 (context switching) (echo 'hist:keys=common_timestamp' > \ events/sched/sched_switch/trigger) do_trace_event_raw_event_##call trace_event_buffer_lock_reserve if (!tr->no_filter_buffering_ref && trace_file->flags & EVENT_FILE_FL_FILTERED) return entry; // retorno directo event_hist_trigger_parse hist_register_trigger tracing_set_filter_buffering(file->tr, true); tr->no_filter_buffering_ref++; __trace_buffer_lock_reserve rb_start_commit local_inc(&cpu_buffer->committing); // omitido y no ejecutado trace_event_buffer_commit __event_trigger_test_discard event_triggers_call event_hist_trigger hist_fn_call hist_field_timestamp ring_buffer_event_time_stamp nest = local_read(&cpu_buffer->committing); WARN_ON_ONCE(!nest) // activa la advertencia

La causa raíz es que, cuando un archivo de evento tiene un filtro adjunto y el trigger hist aún no se ha adjuntado, trace_event_buffer_lock_reserve() escribe el evento en el búfer temporal por-CPU trace_buffered_event en lugar de reservarlo en el ring buffer, por lo tanto cpu_buffer->committing no se incrementa. Cuando el evento se procesa posteriormente en el momento del commit mediante un trigger hist, hist_field_timestamp() -> ring_buffer_event_time_stamp() observa un conteo committing igual a cero, activando WARN_ON_ONCE(!nest).

tracing_event_time_stamp() fue añadido por el commit d8279bfc5e959 ("tracing: Add tracing_event_time_stamp() API") precisamente para este caso: si el evento es trace_buffered_event por-CPU, devuelve la marca temporal actual del ring buffer. Sin embargo, nunca obtuvo un llamador (caller). Utilizarlo en hist_field_timestamp(), de modo que un trigger hist que compita con un evento en búfer registre la hora actual, que es solo marginalmente posterior a cuando se registró el evento, en lugar de generar una advertencia y registrar una marca temporal falsa.

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

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-28

Moderación

aceptado

Artículo

VDB-427880

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!