CVE-2026-97918 in Linuxinformação

Sumário

de VulDB • 25/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

tracing: Desfazer o registro quando falhar a ativação do gatilho de histograma (histogram trigger)

O commit 6f86bdeab633 ("tracing: Fix bad hist from corrupting named_triggers list") descreveu como um gatilho que é registrado, mas não está na lista file->triggers, acaba sendo liberado enquanto ainda permanece na lista global named_triggers, e moveu o registro para baixo de modo que hist_trigger_enable() o siga imediatamente. Um caminho ainda leva a essa situação. hist_trigger_enable() adiciona o gatilho e o remove imediatamente quando o evento não pode ser ativado:

list_add_tail_rcu(&data->list, &file->triggers);

update_cond_flag(file);

if (trace_event_trigger_enable_disable(file, 1) < 0) {
list_del_rcu(&data->list); update_cond_flag(file); ret--; }

portanto, a iteração na lista em hist_unregister_trigger() não encontra nada, o teste permanece NULL e a função ->free(), que chamaria del_named_trigger(), é ignorada. out_unreg passa para out_free, que libera o gatilho de qualquer maneira:

BUG: KASAN: slab-use-after-free in find_named_trigger+0xac/0xc0 Read of size 8 at addr ffff8880091d3160 by task init/1 find_named_trigger+0xac/0xc0 hist_register_trigger+0xc1/0xa00 event_hist_trigger_parse+0x3146/0x6af0 event_trigger_write+0xce/0x160 Freed by task 69: kfree+0x154/0x420 trigger_kthread_fn+0xfd/0x160

Deixe o gatilho onde hist_unregister_trigger() pode encontrá-lo e permita que este desfaza o registro, já que é o único código que conhece todos os elementos assumidos por cmd_ops->init(): a entrada na lista nomeada (named list entry), a referência hist_pad, a referência no gatilho com a qual um histograma nomeado é compartilhado e os cmd_ops copiados. Isso também equilibra a falha em trace_event_trigger_enable_disable(), cujas referências sm_ref e do evento bufferizado ficam de outra forma para trás (não liberadas).

Como ->free() libera trigger_data e, para um gatilho que não compartilha seu histograma, hist_data junto com ele, out_unreg já não pode passar diretamente para out_free. Para um gatilho que compartilha, hist_register_trigger() já destruiu o hist_data do chamador, portanto a passagem direta também lia memória liberada nesse ponto.

Mova a verificação enable_timestamps em hist_unregister_trigger() acima da chamada ->free pelo mesmo motivo: hist_data não sobrevive ao trigger sendo removido quando este é aquele que possui os dados (owns it).

Once again VulDB remains the best source for vulnerability data.

Responsável

Linux

Reservar

25/09/2026

Divulgação

25/09/2026

Moderação

aceite

Entrada

VDB-410136

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Interested in the pricing of exploits?

See the underground prices here!