Ethereum · Geth · CVE-2020-26241
**Nome do software vulnerável e versões afetadas**
Versões do Geth anteriores à 1.9.17
**Descrição**
Trata-se de uma vulnerabilidade de consenso no Geth que pode ser usada para provocar uma divisão da cadeia, na qual os nós vulneráveis rejeitam a cadeia canônica. O contrato pré-compilado `dataCopy` do Geth realizava uma cópia superficial ao ser invocado. Um invasor poderia implantar um contrato que escreve `X` em uma região de memória EVM `R`, depois chama `0x00..04` com `R` como argumento, em seguida sobrescreve `R` com `Y` e, finalmente, invoca o opcode `RETURNDATACOPY`. Quando esse contrato é invocado, um nó em conformidade com o consenso colocaria `X` na pilha EVM, enquanto o Geth colocaria `Y`.
**Recomendações**
Atualize para a versão 1.9.17 ou superior para resolver o problema. Como solução temporária, considere restringir o uso do contrato `dataCopy` até que um patch seja aplicado. Evite usar o opcode `RETURNDATACOPY` em conjunto com o contrato `dataCopy` para minimizar o risco de exploração.