CVE-2026-99163 in Linux
Sumário
de VulDB • 28/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
tracing/histogramas: Rejeitar campos não-stacktrace para campos de stacktrace sintéticos
Em `check_synth_field()`, quando um campo de evento sintético é uma stacktrace (`field->is_stack`) e o campo do histograma não é um array "long[" de stacktrace, a validação cai na comparação genérica de tamanho e sinalidade.
Como `parse_synth_field()` define o tipo de um campo de stacktrace como `"__data_loc unsigned long[]"`, seu tamanho é `sizeof(u64)` e `synth_field_signed()` o marca como assinado. Consequentemente, qualquer campo escalar do histograma com 8 bytes e sinalizado passa pela verificação secundária (fallback), e seu valor escalar é posteriormente dereferenciado como um ponteiro de stacktrace do kernel em `get_field_size()` e `trace_stack()`.
Além disso, verificar se `strstr(hist_field->type, "long[")` está presente não é suficiente porque campos tracepoint definidos com `__bitmask()` ou `__rel_bitmask()` também têm o tipo `"__data_loc unsigned long[]"` ou `"__rel_loc unsigned long[]"`, enquanto `create_hist_field()` os trata como valores escalares de 4 bytes sem a flag `HIST_FIELD_FL_STACKTRACE`.
Propague `HIST_FIELD_FL_STACKTRACE` para referências variáveis e campos variáveis (excluindo aliases de variáveis da captura de stacktrace por elemento) e rejeite qualquer incompatibilidade entre `HIST_FIELD_FL_STACKTRACE` e `field->is_stack` em `check_synth_field()`.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.