O projeto Poolz foi atacado devido a uma vulnerabilidade de estouro aritmético, resultando em uma perda de cerca de 66,5 mil dólares.
Recentemente, um ataque ao projeto Poolz chamou a atenção da comunidade de criptomoedas. De acordo com os dados de monitoramento da blockchain, o ataque ocorreu em 15 de março de 2023, envolvendo as redes Ethereum, BNB Chain e Polygon. O atacante explorou uma vulnerabilidade de overflow aritmético em um contrato inteligente, conseguindo roubar uma quantidade significativa de tokens, totalizando aproximadamente 66,5 mil dólares.
Detalhes do Ataque
Os atacantes realizaram o ataque através dos seguintes passos:
Primeiro, troquei uma certa quantidade de tokens MNZ na bolsa descentralizada.
Em seguida, foi chamada a função CreateMassPools no contrato Poolz. Esta função deveria permitir que os usuários criassem em massa pools de liquidez e fornecessem liquidez inicial, mas apresenta uma falha grave.
O problema ocorre na função getArraySum. Esta função é usada para calcular a quantidade de liquidez inicial fornecida pelo usuário, mas não consegue lidar corretamente com a situação de estouro de inteiros.
O atacante construiu habilmente os parâmetros de entrada, de modo que o array _StartAmount incluísse números que superavam o valor máximo de uint256. Isso resultou em um estouro no resultado da soma, retornando finalmente o valor 1.
Devido ao fato de o contrato utilizar o valor original de _StartAmount ao registrar as propriedades do pool, em vez da quantidade real de tokens transferidos, um atacante só precisa transferir 1 token para criar um pool com uma liquidez muito maior do que a real.
Por fim, o atacante extraiu uma grande quantidade de tokens não autorizados ao chamar a função withdraw, completando todo o processo de ataque.
Ativos roubados
Este ataque causou perdas em vários tokens, incluindo mas não se limitando a:
2.805.805 MEE
525,134 ESNC
774,997 DON
2.007.504.238 ASW
6,510,689 KMON
2,521,065 POOLZ
35,976,107 DCD
760.845 PORTX
Os atacantes trocaram parte dos tokens roubados por BNB, mas até o momento do relatório, esses fundos ainda não foram transferidos da carteira dos atacantes.
Sugestões de Prevenção
Para evitar vulnerabilidades de estouro aritmético semelhantes, os especialistas recomendam as seguintes medidas:
Utilize uma versão mais recente do compilador Solidity, que realizará automaticamente verificações de estouro durante o processo de compilação.
Para projetos que utilizam versões mais antigas do Solidity, recomenda-se a introdução da biblioteca SafeMath da OpenZeppelin para lidar com operações inteiras, a fim de evitar problemas de estouro.
Realizar uma auditoria de código abrangente, com especial atenção às partes que envolvem operações com grandes números.
Implementar uma validação rigorosa de entrada, garantindo que os parâmetros fornecidos pelo utilizador estejam dentro de um intervalo razoável.
Considere adicionar mecanismos de segurança, como múltiplas assinaturas ou bloqueios temporais, em operações críticas.
Este incidente destaca novamente a importância da segurança dos contratos inteligentes, lembrando aos desenvolvedores e às partes do projeto que devem permanecer sempre em alerta e aprimorar continuamente a segurança do código. Ao mesmo tempo, também lembra os usuários para serem especialmente cautelosos ao interagir com projetos de finanças descentralizadas, especialmente ao participar de projetos recém-lançados ou que não foram devidamente auditados.
Ver original
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.
18 Curtidas
Recompensa
18
8
Compartilhar
Comentário
0/400
GateUser-a5fa8bd0
· 07-23 01:44
Mais uma vez, algo deu errado com o contrato. Tsk tsk.
Ver originalResponder0
SellTheBounce
· 07-20 10:40
Outra vez um idiota cair para zero, enredo familiar
Ver originalResponder0
DataBartender
· 07-20 02:14
Ouvir uma conversa e beber um chá
Ver originalResponder0
GasFeeCrying
· 07-20 02:13
Mais uma história negra, escapou, escapou.
Ver originalResponder0
LazyDevMiner
· 07-20 02:13
Mais um caso de aviso de zero overflow.
Ver originalResponder0
DEXRobinHood
· 07-20 02:13
Outra empresa obscura, quem será a próxima?
Ver originalResponder0
SandwichVictim
· 07-20 02:08
Outro projeto que foi fazer as pessoas de parvas, escapuliu.
O projeto Poolz sofreu um ataque de estouro aritmético, resultando na perda de 66,5 mil dólares em encriptação.
O projeto Poolz foi atacado devido a uma vulnerabilidade de estouro aritmético, resultando em uma perda de cerca de 66,5 mil dólares.
Recentemente, um ataque ao projeto Poolz chamou a atenção da comunidade de criptomoedas. De acordo com os dados de monitoramento da blockchain, o ataque ocorreu em 15 de março de 2023, envolvendo as redes Ethereum, BNB Chain e Polygon. O atacante explorou uma vulnerabilidade de overflow aritmético em um contrato inteligente, conseguindo roubar uma quantidade significativa de tokens, totalizando aproximadamente 66,5 mil dólares.
Detalhes do Ataque
Os atacantes realizaram o ataque através dos seguintes passos:
Primeiro, troquei uma certa quantidade de tokens MNZ na bolsa descentralizada.
Em seguida, foi chamada a função CreateMassPools no contrato Poolz. Esta função deveria permitir que os usuários criassem em massa pools de liquidez e fornecessem liquidez inicial, mas apresenta uma falha grave.
O problema ocorre na função getArraySum. Esta função é usada para calcular a quantidade de liquidez inicial fornecida pelo usuário, mas não consegue lidar corretamente com a situação de estouro de inteiros.
O atacante construiu habilmente os parâmetros de entrada, de modo que o array _StartAmount incluísse números que superavam o valor máximo de uint256. Isso resultou em um estouro no resultado da soma, retornando finalmente o valor 1.
Devido ao fato de o contrato utilizar o valor original de _StartAmount ao registrar as propriedades do pool, em vez da quantidade real de tokens transferidos, um atacante só precisa transferir 1 token para criar um pool com uma liquidez muito maior do que a real.
Por fim, o atacante extraiu uma grande quantidade de tokens não autorizados ao chamar a função withdraw, completando todo o processo de ataque.
Ativos roubados
Este ataque causou perdas em vários tokens, incluindo mas não se limitando a:
Os atacantes trocaram parte dos tokens roubados por BNB, mas até o momento do relatório, esses fundos ainda não foram transferidos da carteira dos atacantes.
Sugestões de Prevenção
Para evitar vulnerabilidades de estouro aritmético semelhantes, os especialistas recomendam as seguintes medidas:
Utilize uma versão mais recente do compilador Solidity, que realizará automaticamente verificações de estouro durante o processo de compilação.
Para projetos que utilizam versões mais antigas do Solidity, recomenda-se a introdução da biblioteca SafeMath da OpenZeppelin para lidar com operações inteiras, a fim de evitar problemas de estouro.
Realizar uma auditoria de código abrangente, com especial atenção às partes que envolvem operações com grandes números.
Implementar uma validação rigorosa de entrada, garantindo que os parâmetros fornecidos pelo utilizador estejam dentro de um intervalo razoável.
Considere adicionar mecanismos de segurança, como múltiplas assinaturas ou bloqueios temporais, em operações críticas.
Este incidente destaca novamente a importância da segurança dos contratos inteligentes, lembrando aos desenvolvedores e às partes do projeto que devem permanecer sempre em alerta e aprimorar continuamente a segurança do código. Ao mesmo tempo, também lembra os usuários para serem especialmente cautelosos ao interagir com projetos de finanças descentralizadas, especialmente ao participar de projetos recém-lançados ou que não foram devidamente auditados.