PT-2022-16882 · Wasmtime · Wasmtime

Publicado

2022-03-28

·

Atualizado

2024-06-15

·

CVE-2022-24791

CVSS v3.1

8.1

Alta

VetorAV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Nome do software vulnerável e versões afetadas
Versões do Wasmtime anteriores à 0.34.2
Versões do Wasmtime anteriores à 0.35.2
Descrição
Existe uma vulnerabilidade do tipo “use after free” no Wasmtime quando se executa Wasm que utiliza externrefs e se habilita a interrupção de época no Wasmtime. O uso após liberação é causado pela falha do Cranelift em emitir mapas de pilha quando há pontos de segurança dentro de blocos frios. Os blocos frios ocorrem quando a interrupção de época está habilitada. Quando o Wasmtime eventualmente coletasse o lixo, ele não conseguiria encontrar referências ativas na pilha devido à falta dos mapas de pilha, consideraria que eram lixo sem referência e, portanto, as recuperaria. Então, após o término da coleta, o código Wasm poderia usar as referências recuperadas prematuramente, o que constitui um uso após liberação.
Recomendações
Para versões anteriores à 0.34.2, atualize para a versão 0.34.2 ou posterior.
Para versões anteriores à 0.35.2, atualize para a versão 0.35.2 ou posterior.
Como solução temporária, considere desativar a proposta de tipos de referência Wasm definindo config.wasm reference types(false).
Como alternativa, desative a interrupção de época definindo config.epoch interruption(false) se ela estava ativada anteriormente.

Exploit

Correção

Use After Free

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2022-24791
GHSA-GWC9-348X-QWV2
OPENSUSE-SU-2024:12009-1
RUSTSEC-2022-0016
RUSTSEC-2022-0099

Produtos afetados

Wasmtime