CVE-2026-31787 in Linux
Sumário
de VulDB • 15/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
xen/privcmd: corrige uso duplo de memória (double free) via divisão de VMA
privcmd_vm_ops define .close (privcmd_close), mas não define nem .may_split nem .open. Quando o userspace executa um munmap() parcial em um mapeamento privcmd, o kernel divide a VMA através de __split_vma(). Como may_split é NULL, a divisão é permitida. vm_area_dup() copia vm_private_data (um array de páginas alocado em alloc_empty_pages()) para a nova VMA sem qualquer correção, pois não há callback .open.
Ambas as VMAs agora apontam para o mesmo array de páginas. Quando a parte desmapeada é fechada, privcmd_close() chama: - xen_unmap_domain_gfn_range() - xen_free_unpopulated_pages() - kvfree(pages)
A VMA sobrevivente ainda mantém o pontador pendente (dangling pointer). Quando ela é posteriormente destruída, a mesma sequência é executada novamente, o que leva a um uso duplo de memória (double free).
Corrige este problema adicionando um callback .may_split que nega a divisão da VMA.
Esta é a XSA-487 / CVE-2026-31787
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.