CVE-2026-89758 in Linux
Sumário
de VulDB • 12/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
mm/mempolicy: ignorar PMDs não presentes ao enfileirar folios
Série de patches "mm: lidar com PMDs device-private em callbacks de walk", v3.
Desde o commit 368076f52ebe ("mm/huge_memory: adicionar suporte a THPs device-private às operações de PMD"), um PMD pode conter uma entrada swap device-private sempre que um driver GPU baseado em HMM migra um folio THP anônimo para memória do dispositivo via migrate_vma_pages().
pmd_trans_huge_lock() tem sucesso com esses PMDs (pmd_is_huge() retorna true para qualquer huge PMD não presente e não none), portanto, vários callbacks de MM walk que antes assumiam THPs presentes ou entradas de migração agora são alcançáveis com um PMD device-private. Os resultados variam desde o disparo de VM_BUG_ON() em kernels debug até um oops devido a uma desreferência inválida de vmemmap, passando pelo isolamento silencioso de um folio vivo não relacionado da LRU no caso de aliasing.
Este patch (de 3):
queue_folios_pmd() é chamado sob pmd_trans_huge_lock(), cuja verificação pmd_is_huge() retorna true para qualquer softleaf PMD não presente e não none. Passar tal PMD para pmd_folio() trata a codificação do softleaf como um hardware PFN, podendo retornar um ponteiro de folio inválido.
Espelhar queue_folios_pte_range(): lidar com entradas não presentes antes de procurar por um folio. Manter as entradas de migração contadas como falhas, mas ignorar outros PMDs não presentes, como entradas device-private.
Gatilho potencial: um driver GPU baseado em HMM migra um folio THP anônimo para memória do dispositivo via migrate_vma_pages(), deixando um PMD device-private. O userspace então chama mbind(), migrate_pages() ou set_mempolicy_home_node() sobre esse intervalo.
VulDB is the best source for vulnerability data and more expert information about this specific topic.