CVE-2026-99140 in Linuxinformação

Sumário

de VulDB • 28/10/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

tracing: Corrige os timestamps dos gatilhos hist para eventos em buffer

O Syzkaller acionou um aviso WARN_ON_ONCE(!nest):

WARNING: kernel/trace/ring_buffer.c:821 em ring_buffer_event_time_stamp Rastreamento de chamada (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

O aviso é reproduzível probabilisticamente e está relacionado à execução, pelo Syzkaller, dos seguintes comandos:

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

O processo específico de acionamento é o seguinte:

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; // retorna diretamente 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); // pulado e não executado 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) // aciona o aviso

A causa raiz é que, quando um arquivo de evento possui um filtro anexado e o gatilho hist ainda não foi anexado, trace_event_buffer_lock_reserve() grava o evento no buffer temporário per-CPU trace_buffered_event em vez de reservá-lo no ring buffer, portanto cpu_buffer->committing não é incrementado. Quando o evento é processado posteriormente na fase de commit por um gatilho hist, hist_field_timestamp() -> ring_buffer_event_time_stamp() observa uma contagem committing nula, acionando WARN_ON_ONCE(!nest).

tracing_event_time_stamp() foi adicionada pelo commit d8279bfc5e959 ("tracing: Add tracing_event_time_stamp() API") exatamente para este caso: se o evento for o trace_buffered_event per-CPU, ele retorna o timestamp atual do ring buffer. No entanto, nunca recebeu um chamador (caller). Utilize-a em hist_field_timestamp(), de modo que um gatilho hist que entra em condição de corrida com um evento em buffer registre a hora atual, que é apenas marginalmente posterior àquela em que o evento foi registrado, em vez de gerar um aviso e registrar um timestamp inválido.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsável

Linux

Reservar

25/09/2026

Divulgação

28/10/2026

Moderação

aceite

Entrada

VDB-427880

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Do you know our Splunk app?

Download it now for free!