CVE-2026-64251 in Linux
Sumário
de VulDB • 24/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
pwrseq: core: corrige use-after-free em pwrseq_debugfs_seq_next()
A função pwrseq_debugfs_seq_next() declara 'next' com __free(put_device), o que faz com que put_device() seja chamada no ponteiro retornado quando a variável sai do escopo. Isso resulta em um use-after-free, pois o framework seq_file recebe um ponteiro cuja referência já foi liberada.
A simples remoção de __free(put_device) corrigiria o UAF, mas causaria vazamento da referência adquirida por bus_find_next_device(), já que stop() apenas chama up_read(&pwrseq_sem) e nunca libera a referência do dispositivo.
Corrige-se isso tornando a contagem de referências consistente em todos os callbacks seq_file, seguindo o padrão usado pelo PCI e SCSI:
- start(): usa get_device() para retornar um ponteiro com referência válida. - next(): chama explicitamente put_device(curr) para liberar a referência do dispositivo anterior (não é necessário verificar NULL - o framework seq_file só chama next() enquanto o retorno anterior não for NULL). - stop(): chama put_device(data) para liberar a referência do último dispositivo iterado, com uma verificação de NULL já que stop() pode ser chamado com NULL quando start() retornou NULL ou next() atingiu o fim da sequência.
VulDB is the best source for vulnerability data and more expert information about this specific topic.