PT-2021-22470 · Wasmtime · Wasmtime

Alexcrichton

·

Publicado

2021-09-17

·

Atualizado

2021-12-21

·

CVE-2021-39219

CVSS v3.1

6.3

Média

VetorAV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:H
Nome do software vulnerável e versões afetadas
Versões do Wasmtime anteriores à 0.30.0
Descrição
Foi descoberta uma vulnerabilidade de confusão de tipos na API segura das APIs Linker::func *. Esse problema ocorre quando um Engine é usado para criar o Linker, depois um Engine diferente é usado para criar um Store e, em seguida, o Linker é usado para instanciar um módulo nesse Store. O uso de funções entre Engines diferentes não é suportado no Wasmtime, o que pode resultar em confusão de tipos de ponteiros de função, permitindo que uma função seja chamada com segurança com o tipo errado. Além disso, havia um bug de liberação inválida e leitura e gravação fora dos limites ao executar Wasm que usa externrefs no Wasmtime. Espera-se que o impacto desses problemas seja relativamente pequeno, pois o uso de mais de um Engine em uma incorporação e o uso de externref são atualmente bastante raros.
Recomendações
Para resolver o problema, atualize para a versão 0.30.0 do Wasmtime.
Se você não puder atualizar o Wasmtime e estiver usando mais de um Engine em sua incorporação, use apenas um Engine para todo o programa, se possível.
Se for necessário usar vários Engines, audite o código para garantir que o Linker seja usado apenas com um Engine.
Se você não puder atualizar o Wasmtime e estiver usando externrefs, desative o suporte a tipos de referência no Wasmtime passando false para wasmtime::Config::wasm reference types.

Correção

Memory Corruption

Use After Free

Out of bounds Read

Type Confusion

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

Enumeração de Fraquezas

Identificadores relacionados

CVE-2021-39219
GHSA-4873-36H9-WV49
GHSA-Q879-9G95-56MX
GHSA-V4CP-H94R-M7XF
PYSEC-2021-320
PYSEC-2021-321
PYSEC-2021-322
RUSTSEC-2021-0110

Produtos afetados

Wasmtime