Evmos · Evmos · CVE-2024-32644
**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.