Rust-Evm · Rust-Evm · CVE-2024-21629
**Nome do software vulnerável e versões afetadas**
Versões do rust-evm anteriores à 0.41.1
**Descrição**
O problema está relacionado ao recurso `record external operation` no `rust-evm`, que permite aos usuários da biblioteca registrar alterações personalizadas no gas. Esse recurso pode causar interações incorretas com a pilha de chamadas, particularmente durante a finalização de um `CREATE` ou `CREATE2`. Se a execução do substack ocorrer com sucesso, o `rust-evm` primeiro confirmará o subestado e, em seguida, chamará `record external operation(Write(out code.len()))`. Se `record external operation` falhar posteriormente, esse erro é retornado à pilha de chamadas pai, em vez de `Succeeded`. No entanto, o commit do subestado já ocorreu, fazendo com que os contratos inteligentes confirmem alterações de estado quando o contrato chamador pai recebe um endereço nulo, o que geralmente indica que a execução falhou. Este problema afeta apenas usuários da biblioteca com `record external operation` personalizado que retorna erros.
**Recomendações**
Para versões anteriores à 0.41.1, atualize para a versão 0.41.1 para resolver o problema. Como solução alternativa temporária, considere desativar o recurso `record external operation` até que um patch esteja disponível. Restrinja o acesso à função `record external operation` para minimizar o risco de exploração. Evite usar a função `record external operation` no endpoint da API afetado até que o problema seja resolvido.