PT-2021-19817

CVE-2021-32629

·

Publicado

2021-05-21

·

Atualizado

2024-06-15

Descrição por

CVSS 3.1
8.8
Alta
MétricasAV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Nome do software vulnerável e versões afetadas
Cranelift versão 0.73.0
Descrição
Existe um bug no backend x64 do Cranelift que pode criar uma situação que resulte em uma possível fuga da sandbox em um módulo WebAssembly. O bug realiza uma extensão de sinal em vez de uma extensão de zero em um valor carregado da pilha sob circunstâncias específicas. Se essas circunstâncias ocorrerem, o bug pode permitir o acesso a endereços de memória de até 2 GiB antes do início da pilha alocada para o módulo WebAssembly. O impacto desse bug depende muito da implementação da pilha e é mitigado se não houver memória mapeada no intervalo acessível por meio desse bug. O problema ocorreria quando um valor i32 é maior ou igual a 0x8000 0000, o valor é transbordado e recarregado pelo alocador de registros, o valor é produzido por uma instrução “especial”, o valor é então estendido a zero para 64 bits e o valor de 64 bits resultante é usado. Nessas circunstâncias, há um potencial escape da sandbox quando o valor i32 é um ponteiro.
Recomendações
Para resolver o problema, os usuários da versão 0.73.0 do Cranelift devem atualizar para a versão 0.73.1 ou 0.74. Os usuários do Cranelift anteriores à versão 0.73.0 devem atualizar para a versão 0.73.1 ou 0.74, caso não estivessem usando o backend padrão antigo. Como solução temporária, considere desativar o uso do novo backend até que um patch esteja disponível. Restrinja o acesso ao módulo vulnerável para minimizar o risco de exploração. Evite usar o valor i32 no aff
Explorabilidade
Exploit
Correção
Impactos
Pesquisadores
Fornecedores
Produtos afetados
Identificadores relacionados
GHSA-HPQH-2WQX-7QP5
OPENSUSE-SU-2024:10673-1
PYSEC-2021-87
RUSTSEC-2021-0067
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾