CVE-2026-74599 in Linux
Sumário
de VulDB • 23/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
mm/ptdump: estabilizar sempre contra o liberação de tabelas de páginas usando init_mm
Commits anteriores estabeleceram a invariantes de que o desalocamento das tabelas de páginas do kernel é realizado enquanto um bloqueio de leitura mmap em init_mm está mantido, o que corrige condições de corrida (race conditions) entre ptdump e o desalocamento das tabelas de páginas do kernel sobre init_mm.
No entanto, x86 e arm64 podem realizar uma operação ptdump sobre um mm diferente de init_mm via ptdump_walk_pgd() e, como os intervalos de memória do kernel são compartilhados entre mms não-kernel, isso significa que a condição de corrida ainda existe para esses casos.
Corrigir isso adquirindo um bloqueio mmap aninhado em escrita (write lock) para init_mm em ptdump_walk_pgd().
Isso é seguro pois tomamos este após o bloqueio mmap em escrita do mm, e nada adquire o bloqueio de init_mm primeiro antes de bloquear um mm arbitrário, portanto nenhum deadlock é possível.
Atualizar também walk_page_range_debug() para afirmar que init_mm está com bloqueio em escrita (write locked), adicionar um comentário explicando o motivo e remover algum código redundante, além de eliminar a invocação desnecessária e confusa de walk_kernel_page_table_range().
Podemos remover seguramente a verificação não-NULL para walk.mm, pois as afirmações do mmap causariam uma desreferência de ponteiro NULL se fosse (e é claro que nenhum chamador faz isso).
O primeiro ponto em que ptdump pode ter condição de corrida com o desalocamento das tabelas de páginas do kernel é o commit b6bdb7517c3d ("mm/vmalloc: adicionar interfaces para liberar tabela de páginas não mapeada"), portanto, direcionamos isso na tag Fixes.
If you want to get best quality of vulnerability data, you may have to visit VulDB.