Fitzgen

#17334de 53,624
15.5CVSS total
Vulnerabilidades · 3
Baixa
1
Média
2
PT-2024-32825
2.9
2024-10-03
Wasmtime · Wasmtime · CVE-2024-47813
**Nome do software vulnerável e versões afetadas** Versões do Wasmtime 19.0.0 a 20.0.0 Versões do Wasmtime 21.0.0 a 21.0.1 Versões do Wasmtime 22.0.0 Versões do Wasmtime 23.0.0 a 23.0.2 Versões 24.0.0 do Wasmtime Versões 25.0.0 a 25.0.1 do Wasmtime **Descrição** Uma condição de corrida no registro de tipos interno do Wasmtime pode levar a erros graves e, potencialmente, à corrupção do registro de tipos sob certas ordenações de eventos simultâneos. Essa corrupção pode resultar em violações da integridade do fluxo de controle (CFI) e da segurança de tipos do WebAssembly. Usuários que não utilizam `wasmtime::Engine` em múltiplas threads não são afetados. O problema decorre de um bug do tipo “time-of-check versus time-of-use” (TOCTOU), em que uma thread decrementa atomicamente a contagem de registros de uma entrada de tipo e, em seguida, adquire um bloqueio para cancelar o registro dessa entrada, mas outra thread poderia registrar novamente o tipo, ressuscitando-o, antes que a primeira thread adquira o bloqueio. Esse duplo cancelamento de registro pode levar a uma violação da CFI do WebAssembly se um novo módulo WebAssembly for carregado no mecanismo antes que o segundo cancelamento de registro ocorra. **Recomendações** Para as versões 19.0.0 a 20.0.0 do Wasmtime, atualize para a versão 21.0.2 ou posterior. Para as versões 21.0.0 a 21.0.1 do Wasmtime, atualize para a versão 21.0.2 ou posterior. Para as versões 22.0.0 do Wasmtime, atualize para a versão 22.0.1 ou posterior. Para as versões 23.0.0 a 23.0.2 do Wasmtime, atualize para a versão 23.0.3 ou posterior. Para as versões 24.0.0 do Wasmtime, atualize para a versão 24.0.1 ou posterior. Para o Wasmt
PT-2021-22468
6.3
2021-09-17
Wasmtime · Wasmtime · CVE-2021-39216
**Nome do software vulnerável e versões afetadas** Versões do Wasmtime de 0.19.0 a 0.29.0 **Descrição** O problema está relacionado a um bug de uso após liberação (use-after-free) ao passar `externref`s do host para o conteúdo Wasm do convidado. Para acionar o bug, vários `externref`s devem ser passados do host para uma instância Wasm ao mesmo tempo. O bug pode ser acionado ao passar vários `externref`s como argumentos do código do host para uma função Wasm ou ao retornar vários `externref`s para o Wasm a partir de uma função de retorno com múltiplos valores definida no host. Se a `VMExternRefActivationsTable` do Wasmtime ficar cheia após a passagem do primeiro `externref`, a passagem do segundo `externref` poderia acionar uma coleta de lixo. No entanto, o primeiro `externref` não é fixado até que o controle seja passado para o Wasm e, portanto, poderia ser recuperado pelo coletor se nada mais mantivesse uma referência a ele ou o mantivesse ativo de outra forma. Então, quando o controle foi passado para o Wasm após a coleta de lixo, o Wasm poderia usar o primeiro `externref`, que a essa altura já havia sido liberado. Além disso, há um bug de liberação inválida e leitura e gravação fora dos limites ao executar o Wasm que usa `externref`s no Wasmtime. O bug pode ser acionado quando o Wasmtime está executando o Wasm que usa `externref`s, o host cria `externrefs` não nulos, o Wasmtime realiza uma coleta de lixo e deve haver um quadro Wasm na pilha que esteja em um ponto seguro de GC onde não haja referências ativas nesse ponto seguro, e há