Notícias do ChainCatcher, de acordo com inteligência da equipe de segurança SlowMist, o projeto DFX Finance na cadeia ETH foi atacado e o invasor obteve um lucro de aproximadamente US$ 231.138. A equipe de segurança do SlowMist compartilhou o seguinte na forma de uma mensagem de texto:

1. O invasor primeiro chama a função viewDeposit no contrato chamado Curve para visualizar o status do depósito no contrato e, em seguida, constrói a quantia apropriada de dinheiro a ser emprestada para o empréstimo instantâneo com base no status do depósito devolvido.

2. Em seguida, continue a função flash do contrato Curve para realizar empréstimos flash. Como essa função não possui proteção de bloqueio de reentrada, o invasor usa a função flashCallback no empréstimo flash para chamar de volta a função de depósito do contrato para depósitos.

3. A função de depósito chama externamente a função proportionDeposit do contrato ProportionalLiquidity, que transfere os fundos emprestados na segunda etapa de volta para o contrato Curve, registra o depósito para o contrato de ataque e cria um certificado de depósito para o contrato de ataque.

4. Ao usar a função de depósito reentrante para transferir fundos de volta para o contrato Curve, a verificação de saldo para o pagamento do empréstimo rápido foi aprovada com sucesso.

5. Por fim, a função de retirada é chamada para sacar fundos. Ao sacar fundos, o certificado de depósito será queimado de acordo com o registro de depósito do contrato de ataque na etapa 3. Dessa forma, aproximadamente 2.283.092.402 tokens XIDR e 99.866 tokens USDC são sacados com sucesso, gerando lucro.

O principal motivo desse ataque é que a função de empréstimo rápido do contrato Curve não possui proteção de reentrada, permitindo que o invasor acesse novamente a função de depósito para transferir tokens e usar o saldo de pagamento do empréstimo rápido para determinar o saldo. Como os depósitos são registrados, o invasor conseguiu sacar os fundos e lucrar com sucesso. (Link da fonte)