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

VetorAV: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 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2022-31169
GHSA-7F6X-JWH5-M9R4
GHSA-88XQ-W8CQ-XFG7
RUSTSEC-2022-0096
RUSTSEC-2022-0101

Produtos afetados

Cranelift
Wasmtime