PT-2022-24951 · Wasmtime · Wasmtime
Alexcrichton
·
Publicado
2022-11-05
·
Atualizado
2023-06-27
·
CVE-2022-39392
CVSS v3.1
5.9
Média
| Vetor | AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N |
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 queExploit
Correção
Buffer Overflow
Out of bounds Read
Memory Corruption
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Wasmtime