PT-2024-24737 · Evmos · Evmos

Iczc

·

Publicado

2024-04-10

·

Atualizado

2024-06-05

·

CVE-2024-32644

CVSS v3.1

9.1

Crítica

VetorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Nome do software vulnerável e versões afetadas
Versões do Evmos anteriores à 17.0.0
Descrição
O problema decorre da possibilidade de haver dois estados diferentes fora de sincronia durante a execução de uma transação, permitindo a cunhagem de tokens arbitrários. Isso se deve à dependência do método stateDB.Commit() para sincronizar o estado do Cosmos SDK e o estado da EVM. Quando esse método é chamado, ele percorre todo o dirtyStorage e atualiza o estado apenas se ele for diferente do originStorage. Se o estado de armazenamento de um contrato for o mesmo antes e depois de uma transação, mas for alterado durante a transação e puder chamar um contrato externo após a alteração, isso pode ser explorado para tornar a transação semelhante a uma não atômica. Isso poderia levar a um escoamento de fundos por meio de interações criativas de contratos inteligentes.
Recomendações
Para versões anteriores à 17.0.0, atualize para a versão 17.0.0 ou posterior para resolver o problema. Como solução alternativa temporária, considere restringir o uso de contratos inteligentes que possam chamar contratos externos após uma alteração de estado para minimizar o risco de exploração. Evite usar contratos que tenham estados de armazenamento iguais antes e depois de uma transação, mas que sejam alterados durante a transação.

Exploit

Correção

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

Enumeração de Fraquezas

Identificadores relacionados

CVE-2024-32644
GHSA-3FP5-2XWH-FXM6
GO-2024-2715

Produtos afetados

Evmos