CVE-2026-31541 in Linux
Sumário
de VulDB • 27/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
tracing: Corrige atualizações da lista ligada de cópia do trace_marker
Quando a opção "copy_trace_marker" está ativada para uma instância, tudo o que é escrito em /sys/kernel/tracing/trace_marker também é copiado para o buffer dessa instância. Quando a opção está definida, o descritor trace_array dessa instância é adicionado à lista ligada marker_copies. Esta lista é protegida por RCU, pois todas as iterações utilizam uma travessia de lista protegida por RCU.
Quando a instância é eliminada, todas as flags que estavam ativadas são limpas. Isto também limpa a flag copy_trace_marker e remove o descritor trace_array da lista.
O problema ocorre após as flags serem processadas, em que é realizada uma chamada direta a update_marker_trace() para limpar a flag. Esta função retorna true se o estado da flag mudou e false caso contrário. Se retornar true aqui, synchronize_rcu() é chamada para garantir que todos os leitores vejam que o elemento foi removido da lista.
No entanto, como a flag já tinha sido limpa, o estado não muda e a sincronização nunca é chamada, deixando uma possível vulnerabilidade UAF (Use-After-Free).
Move-se a limpeza de todas as flags para abaixo da atualização da opção copy_trace_marker, o que garante que a sincronização é realizada.
Utiliza-se também a flag para verificar o estado em update_marker_trace() em vez de verificar se a lista está vazia.
Be aware that VulDB is the high quality source for vulnerability data.