PT-2022-20583 · Cranelift+1 · Cranelift+1
Akirilov-Arm
·
Publicado
2022-02-16
·
Atualizado
2022-08-03
·
CVE-2022-31169
CVSS v3.1
5.9
Média
| Vetor | AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N |
Nome do software vulnerável e versões afetadas
Versões do Wasmtime anteriores à 0.38.2
Versões do Cranelift anteriores à 0.85.2
Descrição
Existe um bug no gerador de código do Wasmtime, o Cranelift, para alvos AArch64, em que divisores constantes podem resultar em resultados de divisão incorretos em tempo de execução. As regras de tradução para constantes não levavam em conta se deveria ocorrer extensão de sinal ou de zero, o que resultou na inserção de um valor incorreto em um registro quando uma divisão era encontrada. Isso significa que os programas em execução dentro da sandbox do WebAssembly não se comportariam de acordo com a especificação do WebAssembly, e é hipoteticamente possível que a execução dentro da sandbox dê errado e os programas WebAssembly possam produzir resultados inesperados. Isso não deve afetar os hosts que executam WebAssembly, mas afeta a correção dos programas convidados.
Recomendações
Para versões do Wasmtime anteriores à 0.38.2, atualize para a versão 0.38.2 do Wasmtime.
Para versões do Cranelift anteriores à 0.85.2, atualize para a versão 0.85.2 do cranelift-codegen.
Como solução temporária para usuários diretos do Cranelift que controlam as instruções exatas do Cranelift que estão sendo compiladas, evite a vulnerabilidade estendendo explicitamente divisores constantes para 64 bits usando a operação
sextend.i64 ou uextend.i64.Exploit
Correção
Access of Uninitialized Pointer
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Cranelift
Wasmtime