PT-2020-15797 · Arm · Arm Compiler
Nico Golde
·
Publicado
2020-12-24
·
Atualizado
2021-07-21
·
CVE-2020-24658
CVSS v3.1
7.8
Alta
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Nome do software vulnerável e versões afetadas
Compilador Arm, versões 5 a 5.06u6
Descrição
O problema diz respeito a um recurso de proteção de pilha projetado para ajudar a detectar estouros de buffer baseados na pilha em matrizes locais. Quando esse recurso está ativado, uma função protegida grava um valor de proteção na pilha antes de qualquer matriz vulnerável. O valor de proteção é verificado quanto a corrupção no retorno da função, levando a uma chamada do manipulador de erros se estiver corrompido. No entanto, em certas circunstâncias, o valor de referência comparado com o valor de proteção também é gravado na pilha, potencialmente após as matrizes vulneráveis, quando a função fica sem registros para dados temporários. Isso pode fazer com que a proteção de pilha não consiga detectar a corrupção se tanto o valor de referência quanto o valor de proteção forem sobrescritos com o mesmo valor, o que exigiria tanto um estouro de buffer quanto um subfluxo de buffer nas matrizes vulneráveis, ou outra vulnerabilidade que causasse a corrupção de duas entradas separadas na pilha.
Recomendações
Para as versões 5 a 5.06u6 do Arm Compiler, considere desativar temporariamente o recurso de proteção da pilha até que um patch esteja disponível, como uma solução alternativa para minimizar o risco de exploração. Restrinja o uso de matrizes vulneráveis em funções locais para reduzir a probabilidade de estouros e subfluxos de buffer. Evite usar a pilha para dados temporários sempre que possível, para impedir que o valor de referência seja gravado na pilha. No momento, não há informações sobre uma versão mais recente que contenha
Correção
Memory Corruption
Allocation of Resources Without Limits
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Arm Compiler