Alexcrichton

#3040de 53,633
82.8CVSS total
Vulnerabilidades · 12
Baixa
2
Média
4
Alta
5
Crítica
1
PT-2026-21804
7.5
2026-02-24
Wasmtime · Wasmtime · CVE-2026-27195
**Nome do Software Vulnerável e Versões Afetadas** Versões do Wasmtime 39.0.0 a 41.0.3 **Descrição** O Wasmtime, um runtime para WebAssembly, pode sofrer um panic quando o embedder do host descarta o future retornado por `wasmtime::component::[Typed]Func::call async` antes de sua resolução e, em seguida, chama a mesma função novamente com a mesma instância de componente. Isso ocorre porque a instância do componente entra em um estado não reentrável, levando a um trap e subsequente panic durante o descarte da tarefa. O problema surge de um bug na implementação de `[Typed]Func::call async` introduzido com a feature `component-model-async`, que se tornou o padrão a partir da versão 39.0.0. O `Endpoint da API` envolvido é `wasmtime::component::[Typed]Func::call async`. A `variável` representando o future retornado não é nomeada explicitamente, mas seu manejo inadequado dispara o problema. O problema não afeta incorporações com a feature de tempo de compilação `component-model-async` desativada. **Recomendações** As versões do Wasmtime 39.0.0 a 40.0.3 devem ser atualizadas para a versão 40.0.4 ou 41.0.4. As versões do Wasmtime 40.0.4 a 41.0.3 devem ser atualizadas para a versão 41.0.4. Se uma incorporação não estiver usando nenhuma funcionalidade component-model-async, desative a feature do Cargo `component-model-async`. Garanta que cada future `call async` seja aguardado até sua conclusão. Evite usar o `Store` novamente após descartar um future `call async` ainda não resolvido.
PT-2024-32801
6.8
2024-10-02
Wasmtime · Wasmtime · CVE-2024-47763
**Nome do software vulnerável e versões afetadas** Versões do Wasmtime 21.0.0 a 21.0.1 Versões do Wasmtime 22.0.0 a 22.0.0 Versões do Wasmtime 23.0.0 a 23.0.2 Versões do Wasmtime 24.0.0 a 24.0.0 Versões do Wasmtime 25.0.0 a 25.0.1 **Descrição** O problema está relacionado à implementação do Wasmtime de chamadas de cauda do WebAssembly combinadas com rastreamentos de pilha, o que pode resultar em uma falha de tempo de execução em determinados módulos do WebAssembly. Isso pode ocorrer quando uma função exportada em um módulo do WebAssembly executa um `return call` (ou `return call indirect` ou `return call ref`) para uma função host importada que captura um rastreamento de pilha. A falha é causada por uma assertiva interna no código de rastreamento de pilha que gera um `panic!()` do Rust. O impacto desse problema é um vetor de negação de serviço, no qual um módulo ou componente WebAssembly malicioso pode causar a falha do host. Não há outro impacto no momento além da disponibilidade do serviço, já que o resultado da falha é sempre uma falha e nada mais. **Recomendações** Para as versões 21.0.0 a 21.0.1 do Wasmtime, atualize para a versão 21.0.2. Para as versões 22.0.0 a 22.0.0 do Wasmtime, atualize para a versão 22.0.1. Para as versões 23.0.0 a 23.0.2 do Wasmtime, atualize para a versão 23.0.3. Para as versões 24.0.0 a 24.0.0 do Wasmtime, atualize para a versão 24.0.1. Para as versões 25.0.0 a 25.0.1 do Wasmtime, atualize para a versão 25.0.2. Como solução alternativa temporária, considere desativar o suporte a chamadas de cauda no Wasmtime definindo `Config::wasm tail call(
PT-2023-2185
10
2023-02-23
Wasmtime · Wasmtime · CVE-2023-26489
**Name of the Vulnerable Software and Affected Versions** wasmtime versions prior to 4.0.1 wasmtime versions prior to 5.0.1 wasmtime versions prior to 6.0.1 **Description** The issue is related to a bug in the Cranelift code generator of wasmtime, which mistakenly calculates a 35-bit effective address instead of the defined 33-bit effective address for WebAssembly. This allows a malicious module to read or write memory up to 34G away from the base of linear memory, potentially leading to arbitrary code execution or data corruption. The bug is specific to x86 64 targets and does not affect the AArch64 backend. Affected embedders are recommended to analyze preexisting wasm modules for potential exploitation and consider workarounds to mitigate the issue. **Recommendations** For wasmtime versions prior to 4.0.1: Update to version 4.0.1 or later to fix the erroneous lowering rules in the Cranelift backend. For wasmtime versions prior to 5.0.1: Update to version 5.0.1 or later to fix the erroneous lowering rules in the Cranelift backend. For wasmtime versions prior to 6.0.1: Update to version 6.0.1 or later to fix the erroneous lowering rules in the Cranelift backend. As a temporary workaround, consider using the `Config::static memory maximum size(0)` option to force explicit bounds checking for all accesses to linear memory. Alternatively, use the `Config::static memory guard size(1 << 36)` option to increase the guard pages placed after linear memory, or switch to a non-x86 64 host if possible.
PT-2022-24951
5.9
2022-11-05
Wasmtime · Wasmtime · CVE-2022-39392
**Nome do software vulnerável e versões afetadas** Versões do Wasmtime anteriores à 2.0.2 **Descrição** Existe um bug na implementação do alocador de instâncias em pool do Wasmtime quando o alocador é configurado para atribuir às instâncias do WebAssembly um máximo de zero páginas de memória. Nessa configuração, o mapeamento de memória virtual para as memórias do WebAssembly não atendia aos requisitos de configuração exigidos pelo compilador para a execução segura de módulos do WebAssembly. As configurações padrão do Wasmtime exigem que falhas de página de memória virtual indiquem que as leituras/gravações do wasm estão fora dos limites, mas a configuração do alocador de pool não criaria um mapeamento de memória virtual apropriado para isso, o que significa que leituras/gravações fora dos limites podem ler/gravar com sucesso memória não relacionada à sandbox do wasm dentro do intervalo do endereço base do mapeamento de memória criado pelo alocador de pool. Este bug só pode ser acionado definindo `InstanceLimits::memory pages` como zero. Espera-se que essa seja uma configuração muito rara, já que isso significa que os módulos Wasm não podem alocar nenhuma página de memória linear. É altamente provável que todos os módulos Wasm produzidos por todas as cadeias de ferramentas atuais utilizem memória linear; portanto, é improvável que essa configuração seja definida como zero em qualquer incorporação do Wasmtime em produção. **Recomendações** Para resolver o problema, atualize para o Wasmtime 2.0.2. Como solução alternativa temporária, considere aumentar a alocação de `memory pages` ao configurar o alocador de pool para um valor maior que
PT-2022-20531
6.8
2022-06-27
Unknown · Cranelift-Codegen · CVE-2022-31104
**Nome do software vulnerável e versões afetadas** Versões do Wasmtime anteriores à 0.38.1 Versões do cranelift-codegen anteriores à 0.85.1 **Descrição** O problema está relacionado à implementação do Wasmtime da proposta SIMD para WebAssembly em x86 64, que continha dois bugs nas conversões de instruções implementadas no Cranelift. Os bugs estavam presentes nas instruções WebAssembly `i8x16.swizzle` e `select`. A instrução `select` é afetada apenas quando as entradas são do tipo `v128`. As instruções do Cranelift afetadas correspondentemente foram `swizzle` e `select`. Esse bug representa uma implementação incorreta da semântica especificada dessas instruções de acordo com a especificação do WebAssembly. O impacto disso é benigno para hosts que executam WebAssembly, mas representa possíveis vulnerabilidades na execução de um programa convidado. Por exemplo, um programa WebAssembly poderia tomar ramificações indesejadas ou materializar valores incorretos internamente, o que corre o risco de expor o próprio programa a outras vulnerabilidades relacionadas que podem ocorrer devido a compilações incorretas. **Recomendações** Para versões do Wasmtime anteriores à 0.38.1, atualize para a versão 0.38.1 ou posterior. Para versões do cranelift-codegen anteriores à 0.85.1, atualize para a versão 0.85.1 ou posterior. Como solução alternativa temporária, considere desativar a proposta Wasm simd definindo `config.wasm simd(false)`.
PT-2021-22470
6.3
2021-09-17
Wasmtime · Wasmtime · CVE-2021-39219
**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 `externref`s 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 `Engine`s, 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 `externref`s, desative o suporte a tipos de referência no Wasmtime passando `false` para `wasmtime::Config::wasm reference types`.