ETHW confirma exploração de vulnerabilidade de contrato e descarta alegações de ataque de repetição
O fork de Prova-de-Trabalho da blockchain da Ethereum foi alvo de uma exploração em um contrato cross-chain.
Desenvolvedores da rede de Prova-de-Trabalho (PoW) da Ethereum pós-The Merge, a ETHW, negou as alegações de que havia sofrido um ataque de repetição no fim de semana.
A empresa de auditoria de contratos inteligentes BlockSec havia sinalizado em 16 de setembro o que descreveu como um ataque de repetição, no qual os invasores coletaram tokens ETHW reproduzindo os dados de chamada da cadeia de Prova-de-Participação (PoS) da Ethereum na rede Ethereum PoW.
De acordo com BlockSec, a causa raiz da exploração foi causada porque a ponte cross-chain Omni na cadeia ETHW usava o chainID antigo e não estava verificando o chainID correto da mensagem cross-chain.
As redes principal e de teste da Ethereum usam dois identificadores com finalidades diferentes, a saber, um ID de rede e um ID de cadeia (chainID). As mensagens ponto a ponto entre os nós usam o ID da rede, enquanto as assinaturas de transação usam o chainID. O EIP-155 introduziu o chainID como um meio de evitar ataques de repetição entre as blockchains ETH e Ethereum Classic (ETC).
1/ Alert | BlockSec detected that exploiters are replaying the message (calldata) of the PoS chain on @EthereumPow. The root cause of the exploitation is that the bridge doesn’t correctly verify the actual chainid (which is maintained by itself) of the cross-chain message.
— BlockSec (@BlockSecTeam) September 18, 2022
1/ Alerta | A BlockSec detectou que exploradores estão reproduzindo a mensagem (calldata) da cadeia PoS na @EthereumPow. A causa raiz da exploração é que a ponte não verifica corretamente o chainid real (que é mantido por si mesmo) da mensagem de cadeia cruzada.
— BlockSec (@BlockSecTeam)
A BlockSec foi o primeiro serviço de análise a sinalizar o ataque de repetição e notificou a ETHW, que por sua vez rapidamente rejeitou as alegações iniciais de que um ataque de repetição havia sido realizado na cadeia. A ETHW tentou notificar a Omni Bridge sobre a exploração no nível do contrato:
Had tried every way to contact Omni Bridge yesterday.
Bridges need to correctly verify the actual ChainID of the cross-chain messages.
Again this is not a transaction replay on the chain level, it is a calldata replay due to the flaw of the specific contract. https://t.co/bHbYR4b2AW pic.twitter.com/NZDn61cslJ
— EthereumPoW (ETHW) Official #ETHW #ETHPoW (@EthereumPoW) September 18, 2022
Tentamos de todas as formas entrar em contato com a Omni Bridge ontem.
As pontes precisam verificar corretamente o ChainID real das mensagens cross-chain.
Novamente, isso não é uma repetição de transação no nível da cadeia, é uma repetição de calldata devido à falha do contrato específico.
— EthereumPoW (ETHW) Official #ETHW #ETHPoW (@EthereumPoW)
A análise do ataque revelou que o explorador começou transferindo 200 WETH através da ponte Omni da rede Gnosis antes de reproduzir a mesma mensagem na cadeia PoW, obtendo um extra de 200 ETHW. Isso resultou no esgotamento do saldo do contrato de cadeia implantado na cadeia PoW.
A análise da BlockSec do código-fonte da ponte Omni mostrou que a lógica para verificar o chainID estava presente, mas o chainID verificado usado no contrato foi extraído de um valor armazenado em um dispositivo chamado unitStorage.
A equipe explicou que este não era o chainID correto coletado por meio do opcode CHAINID, que foi proposto pelo EIP-1344 e exacerbado pelo fork resultante após o Ethereum Merge:
“Isso provavelmente se deve ao fato de o código ser bastante antigo (usando Solidity 0.4.24). O código funciona bem o tempo todo até a bifurcação da cadeia PoW.”
Isso permitiu que os invasores coletassem ETHW e potencialmente outros tokens de propriedade da ponte na cadeia PoW e os negociassem no mercado.
O Cointelegraph entrou em contato com a BlockSec para verificar o valor extraído. Yajin Zhou, CEO da BlockSec, disse que sua equipe não realizou um cálculo preciso, mas destacou um limite nas transferências de ETH (WETH) através da Omni Bridge:
“A ponte tem um limite de quantos WETH podem ser transferidos. O invasor pode obter apenas 250 ETHW por dia. Observe que isso é apenas para este contrato de ponte. Essa vulnerabilidade pode existir em outros projetos na cadeia EthereumPoW.”
Após o bem-sucedido The Merge da Ethereum, que concluiu a transição da blockchain de contratos inteligentes de PoW para PoS, um grupo de mineradores decidiu continuar a cadeia PoW por meio de um hard fork.
LEIA MAIS