PT-2024-35666 · Linux+4 · Linux Kernel+4
CVE-2024-53219
·
Publicado
2024-10-25
·
Atualizado
2026-08-25
CVSS v3.1
8.0
Alta
| Vetor | AV:A/AC:L/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.9.0-rc5+
Descrição
Foi corrigida uma vulnerabilidade no kernel Linux relacionada ao módulo virtiofs. Ao tentar inserir um módulo do kernel de 10 MB armazenado em um virtio-fs com o cache desativado, é acionado um aviso devido a um tamanho anormal de alocação de memória. O problema ocorre porque o tamanho máximo de leitura para kvec iter é limitado apenas por fc->max read, que é definido como UINT MAX para o virtio-fs, fazendo com que fuse direct io() não divida o buffer de 10 MB. Isso leva a uma chamada de kmalloc() com um parâmetro de tamanho de 10 MB, acionando um aviso em alloc pages(). A vulnerabilidade pode fazer com que a função finit module() fique travada indefinidamente.
Os detalhes técnicos sobre a exploração incluem:
-
A chamada de sistema
finit module()lida com a inserção do módulo e invocakernel read file()para ler o conteúdo do módulo primeiro. -
A função
kernel read file()aloca um buffer de 10 MB usandovmalloc()e o passa parakernel read(). -
A função
fuse file read iter()invocafuse direct io()quando o virtio-fs desativa o cache. -
A função
virtio fs enqueue req()usakmalloc()para alocar um buffer de rebote para todos os argumentos do fuse.
Recomendações
Para resolver o problema, atualize o kernel do Linux para uma versão que inclua a correção para o módulo virtiofs, que introduz o uso de páginas em vez de ponteiros para E/S direta do kernel. Essa alteração permite que o fuse use páginas para passar dados KVEC IO, evitando a anomalia
Exploit
Correção
RCE
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
Debian
Linuxmint
Linux Kernel
Ubuntu