Linux · Linux Kernel · CVE-2024-46787
**Nome do software vulnerável e versões afetadas**
Versões do kernel Linux anteriores à 6.5
**Descrição**
A vulnerabilidade está relacionada ao recurso userfaultfd no kernel do Linux, especificamente ao código pmd trans huge() em mfill atomic(). O problema decorre de uma verificação concorrente que pode levar a um BUG ON() ou a consequências potencialmente mais graves, como o acesso ao conteúdo de páginas transhuge como se fossem tabelas de páginas, em kernels mais antigos (anteriores à versão 6.5). Além disso, o pmd trans huge() não é suficiente para detectar PMDs que não apontam para tabelas de páginas, o que pode causar outros problemas. O problema pode ser desencadeado ao vencer uma única corrida bastante ampla e afeta kernels com versões anteriores à 6.5.
**Recomendações**
Para resolver o problema, atualize o kernel do Linux para a versão 6.5 ou posterior. Para kernels afetados pelos bugs 1 e 2, a primeira correção pode ser retroportada. Como solução temporária, considere desativar a função `mfill atomic()` até que um patch esteja disponível. Restrinja o acesso à função vulnerável `pmd trans huge()` para minimizar o risco de exploração. Evite usar o ioctl `UFFDIO ZEROPAGE` em kernels afetados até que o problema seja resolvido.