CVE-2026-97920 in Linuxinformação

Sumário

de VulDB • 25/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

rastreio (tracing): Manter a contagem de entradas quando a alocação das estatísticas do histograma falhar

print_entries() usa n_entries tanto como o número de entradas de ordenação quanto como seu próprio valor de retorno; portanto, o -ENOMEM armazenado quando a alocação das estatísticas falha sobrescreve a contagem que ainda é necessária pela limpeza:

n_entries = tracing_map_sort_entries(map, ...); if (n_entries < 0) return n_entries; ... if (!stats) {
n_entries = -ENOMEM; goto out; } ... out: tracing_map_destroy_sort_entries(sort_entries, n_entries);

tracing_map_destroy_sort_entries() recebe um unsigned int e faz loop até esse valor, portanto o -ENOMEM chega como 4294967284. Ele percorre uma matriz de ponteiros com no máximo map->max_elts e chama destroy_sort_entry(), que desreferencia e libera a memória em qualquer coisa localizada após o final da matriz.

Lendo o arquivo hist de um gatilho (trigger) com um valor .percent, forçando essa alocação a falhar:

BUG: KASAN: vmalloc-out-of-bounds in tracing_map_destroy_sort_entries+0xa0/0xb0 Read of size 8 at addr ffffc90000045000 by task init/1 tracing_map_destroy_sort_entries+0xa0/0xb0 hist_show+0x6f7/0x1df0 seq_read_iter+0x2b8/0x1190 vfs_read+0x176/0xa40 The buggy address belongs to a 4-page vmalloc region starting at ffffc90000041000 allocated at tracing_map_sort_entries+0x5c/0xd50

Algumas páginas adiante, o erro é fatal. Os registradores no oops confirmam o limite: o ponteiro final do loop menos o início da matriz, dividido pelo tamanho do ponteiro, resulta em 4294967284.

Retornar o erro em uma variável separada e manter n_entries com a contagem, conforme feito por tracing_map_sort_entries() em seu próprio caminho de tratamento de erros.

O bloco de estatísticas é acessado apenas para um valor que carrega .percent ou .graph, os quais __create_val_field() rejeita desde a v6.3; portanto, isso não pode ser alcançado na versão principal (mainline) como está atualmente. Torna-se novamente acessível com "tracing: hist: let values keep the percent and graph modifiers", devendo esta correção ser aplicada primeiro.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsável

Linux

Reservar

25/09/2026

Divulgação

25/09/2026

Moderação

aceite

Entrada

VDB-410138

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!