PT-2025-3654 · Linux+8 · Linux Kernel+8
Ming-Hung Tsai
·
Publicado
2024-12-05
·
Atualizado
2025-11-07
·
CVE-2024-57929
CVSS v3.1
7.1
Alta
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H |
Nome do Software Vulnerável e Versões Afetadas
Versões do kernel do Linux anteriores à 6.6.74
Descrição
Uma vulnerabilidade no kernel do Linux foi resolvida, especificamente no array do dm, onde um bloco de array defeituoso poderia ser liberado duas vezes em dm array cursor end. Isso ocorre quando dm bm read lock() falha devido a erros de bloqueio ou checksum, liberando o bloco defeituoso implicitamente enquanto deixa um ponteiro de saída inválido para trás. O chamador de dm bm read lock() não deve operar sobre este ponteiro dm block inválido, ou isso levará a resultados indefinidos. Por exemplo, o dm array cursor armazena em cache incorretamente o ponteiro inválido ao ler um bloco de array defeituoso, causando uma liberação dupla em dm array cursor end(), acionando então o BUG ON em dm-bufio cache put().
O problema pode ser reproduzido inicializando um dispositivo de cache, limpando o segundo bloco de array offline e, em seguida, tentando reabrir o dispositivo de cache. Os logs do kernel mostram erros como device-mapper: array: array block check failed e kernel BUG at drivers/md/dm-bufio.c:638. A correção envolve definir o ponteiro do bloco em cache como NULL em caso de erros.
Recomendações
Para resolver o problema, atualize o kernel do Linux para a versão 6.6.74 ou posterior. Como solução temporária, considere desabilitar a função
dm array cursor end() até que um patch esteja disponível. Restrinja o acesso à função vulnerável dm bm read lock() para minimizar o risco de exploração. Evite usar o ponteiro dm block no endpoint de API afetado até que o problema seja resolvido.Exploit
Correção
NULL Pointer Dereference
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Alt Linux
Astra Linux
Debian
Linuxmint
Linux Kernel
Red Hat
Red Os
Suse
Ubuntu