Análise do incidente de ataque de empréstimo flash na Cellframe Network
No dia 1 de junho de 2023, às 10h07min55s (UTC+8), a Cellframe Network foi alvo de um ataque de hackers na sua cadeia inteligente devido a um problema no cálculo da quantidade de tokens durante o processo de migração de liquidez. Este ataque resultou em um lucro de aproximadamente 76.112 dólares para os hackers.
Causa Raiz do Ataque
O problema no cálculo durante o processo de migração de liquidez é a causa fundamental deste ataque.
Explicação detalhada do fluxo de ataque
O atacante primeiro obtém 1000 BNB e 500.000 tokens New Cell através de um Empréstimo Flash. Em seguida, troca todos os tokens New Cell por BNB, fazendo com que a quantidade de BNB no pool fique quase zero. Por fim, troca 900 BNB por tokens Old Cell.
Vale a pena notar que o atacante adicionou liquidez de Old Cell e BNB antes de realizar o ataque, obtendo Old lp.
Em seguida, o atacante chama a função de migração de liquidez. Neste momento, quase não há BNB no novo pool, enquanto quase não há tokens Old Cell no pool antigo.
O processo de migração inclui os seguintes passos:
Remover a liquidez antiga e devolver a quantidade correspondente de tokens aos usuários
Adicionar nova liquidez de acordo com a proporção do novo fundo
Devido à quase inexistência de tokens Old Cell no antigo pool, a quantidade de BNB obtida ao remover a liquidez aumenta, enquanto a quantidade de tokens Old Cell diminui. Isso faz com que os valores de Resoult e Token1 aumentem.
Os usuários só precisam adicionar uma pequena quantidade de BNB e tokens New Cell para obter liquidez, enquanto o BNB excedente e os tokens Old Cell serão devolvidos aos usuários.
Por fim, o atacante remove a liquidez do novo pool e troca os tokens Old Cell retornados da migração por BNB. Neste ponto, o pool antigo possui uma grande quantidade de tokens Old Cell, mas sem BNB, o atacante troca os tokens Old Cell novamente por BNB, completando assim o lucro. Em seguida, o atacante repete a operação de migração.
Resumo e Sugestões
Ao realizar a migração de liquidez, deve-se considerar cuidadosamente a variação na quantidade das duas moedas nos novos e antigos pools, bem como o preço atual das moedas. Calcular diretamente com base na quantidade das duas moedas no par de negociação pode ser facilmente manipulado.
Além disso, para garantir a segurança, a equipe do projeto deve realizar uma auditoria de segurança abrangente antes do lançamento do código. Isso não apenas ajuda a identificar vulnerabilidades potenciais, mas também melhora a segurança e confiabilidade gerais do sistema.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
A Cellframe Network foi alvo de um ataque de empréstimo flash, com uma falha de migração de liquidez que resultou em perdas de 76,112 dólares.
Análise do incidente de ataque de empréstimo flash na Cellframe Network
No dia 1 de junho de 2023, às 10h07min55s (UTC+8), a Cellframe Network foi alvo de um ataque de hackers na sua cadeia inteligente devido a um problema no cálculo da quantidade de tokens durante o processo de migração de liquidez. Este ataque resultou em um lucro de aproximadamente 76.112 dólares para os hackers.
Causa Raiz do Ataque
O problema no cálculo durante o processo de migração de liquidez é a causa fundamental deste ataque.
Explicação detalhada do fluxo de ataque
O atacante primeiro obtém 1000 BNB e 500.000 tokens New Cell através de um Empréstimo Flash. Em seguida, troca todos os tokens New Cell por BNB, fazendo com que a quantidade de BNB no pool fique quase zero. Por fim, troca 900 BNB por tokens Old Cell.
Vale a pena notar que o atacante adicionou liquidez de Old Cell e BNB antes de realizar o ataque, obtendo Old lp.
Em seguida, o atacante chama a função de migração de liquidez. Neste momento, quase não há BNB no novo pool, enquanto quase não há tokens Old Cell no pool antigo.
O processo de migração inclui os seguintes passos:
Devido à quase inexistência de tokens Old Cell no antigo pool, a quantidade de BNB obtida ao remover a liquidez aumenta, enquanto a quantidade de tokens Old Cell diminui. Isso faz com que os valores de Resoult e Token1 aumentem.
Os usuários só precisam adicionar uma pequena quantidade de BNB e tokens New Cell para obter liquidez, enquanto o BNB excedente e os tokens Old Cell serão devolvidos aos usuários.
Resumo e Sugestões
Ao realizar a migração de liquidez, deve-se considerar cuidadosamente a variação na quantidade das duas moedas nos novos e antigos pools, bem como o preço atual das moedas. Calcular diretamente com base na quantidade das duas moedas no par de negociação pode ser facilmente manipulado.
Além disso, para garantir a segurança, a equipe do projeto deve realizar uma auditoria de segurança abrangente antes do lançamento do código. Isso não apenas ajuda a identificar vulnerabilidades potenciais, mas também melhora a segurança e confiabilidade gerais do sistema.