Linux · Linux Kernel · CVE-2024-36906
Nome do software vulnerável e versões afetadas:
Versões do kernel Linux anteriores à 6.6.37
Descrição:
A vulnerabilidade está relacionada ao componente kasan do kernel Linux, responsável por detectar acessos inválidos à memória. O problema surge quando a arquitetura ARM não limpa resíduos de memória da pilha no caso de cpuidle, levando a um erro de acesso fora dos limites da pilha. Isso pode causar a falha do kernel ou gerar mensagens de erro espúrias. A vulnerabilidade é explorada por meio da gravação em um endereço de memória fora dos limites de um quadro de pilha, o que pode ser feito manipulando o ponteiro de pilha ou usando um ataque de estouro de buffer.
Detalhes técnicos sobre a exploração:
- A função `refresh cpu vm stats.constprop.0` é vulnerável a um erro de pilha fora dos limites.
- A função `kasan check range` é usada para detectar acessos inválidos à memória, mas pode não lidar corretamente com o caso em que o ponteiro de pilha é manipulado para apontar fora dos limites de um quadro de pilha.
- A função `memset` é usada para gravar em um endereço de memória, o que pode ser usado para explorar a vulnerabilidade ao gravar em um endereço fora dos limites de um quadro de pilha.
Recomendações:
Para resolver o problema, atualize o kernel do Linux para a versão 6.6.37 ou posterior. Esta versão inclui um patch que limpa o “stack poison” obsoleto no caso de cpuidle, evitando o erro de ultrapassagem dos limites da pilha. Além disso, considere desativar o componente kasan ou restringir seu uso para minimizar o risco de exploração até que o patch