PT-2024-10100 · Linux+4 · Linux Kernel+4
Mortem
·
Publicado
2024-10-22
·
Atualizado
2026-02-21
·
CVE-2024-50066
CVSS v3.1
7.0
Alta
| Vetor | AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
Nome do software vulnerável e versões afetadas
Versões do kernel Linux anteriores à 6.6.58
Descrição
O problema está relacionado a uma condição de corrida na função
move page tables(), especificamente entre move normal pmd() e retract page tables() no código THP. Isso pode levar à criação de entradas PMD inválidas, permitindo potencialmente a escalada de privilégios de usuário para kernel em determinadas arquiteturas, como x86. A vulnerabilidade pode ser explorada criando mapeamentos THP de shmem/arquivo e provocando uma condição de corrida entre as funções move normal pmd() e retract page tables().A função
move page tables() analisa o tipo da entrada PMD e o intervalo de endereços especificado para determinar como mover o próximo bloco de entradas da tabela de páginas. O mmap lock é mantido no modo de gravação, mas ainda não há bloqueios rmap. Para entradas PMD que apontam para tabelas de páginas e são totalmente cobertas pelo intervalo de endereços de origem, move pgt entry(NORMAL PMD, ...) é chamada, o que primeiro obtém bloqueios rmap e, em seguida, executa move normal pmd().A função
move normal pmd() obtém os bloqueios de tabela de páginas necessários na origem e no destino e, em seguida, move uma tabela de páginas inteira da origem para o destino. O problema é que os bloqueios rmap, que protegem contra a remoção simultânea de tabelas de páginas por retract page tables() no código THP, só são obtidos após a leitura da entrada PMD e a decisão sobre como movê-la.Recomendações
Para resolver o problema, atualize o kernel do Linux para a versão 6.6.58 ou posterior. Como
Exploit
Correção
Race Condition
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Alt Linux
Linuxmint
Linux Kernel
Red Os
Ubuntu