Poolz sofre ataque de vulnerabilidade de estouro aritmético, com perda de cerca de 66,5 mil dólares.
Recentemente, os projetos Poolz nas redes Ethereum, Binance Smart Chain e Polygon sofreram um ataque, resultando no roubo de vários tokens, com um valor total de cerca de 66,5 mil dólares. O ataque ocorreu por volta das 3h16 UTC do dia 15 de março de 2023.
De acordo com os dados on-chain, este ataque envolveu vários tokens, incluindo MEE, ESNC, DON, ASW, KMON, POOLZ, entre outros. Os atacantes já trocaram parte dos tokens roubados por BNB, mas atualmente esses fundos ainda não foram transferidos.
O ataque explorou uma vulnerabilidade de estouro aritmético no contrato do Poolz. Especificamente, o problema está na função getArraySum dentro da função CreateMassPools. Esta função, ao calcular a liquidez inicial ao criar em massa os pools dos usuários, resultou em um estouro de inteiro devido ao tratamento incorreto de valores grandes.
Os atacantes, através de parâmetros de entrada cuidadosamente elaborados, fazem com que a função getArraySum retorne o valor 1, enquanto o valor real de _StartAmount é um número muito grande. Assim, o atacante precisa apenas transferir 1 token para registrar uma grande quantidade de liquidez inicial no sistema. Posteriormente, o atacante chama a função withdraw para retirar essa liquidez "falsa", completando assim o ataque.
Para evitar que esses problemas ocorram novamente, os especialistas recomendam que os desenvolvedores usem versões mais recentes do compilador Solidity, pois as novas versões realizam automaticamente verificações de estouro. Para projetos que utilizam versões mais antigas do Solidity, pode-se considerar a introdução da biblioteca SafeMath da OpenZeppelin para lidar com operações inteiras, a fim de evitar riscos de estouro.
Este incidente lembra-nos novamente que, no desenvolvimento de contratos inteligentes, é crucial tratar a segurança das operações aritméticas. Os desenvolvedores precisam estar sempre atentos aos possíveis problemas de estouro de inteiros e tomar as medidas apropriadas para proteger a segurança do contrato.
Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
12 Curtidas
Recompensa
12
7
Compartilhar
Comentário
0/400
CryptoPunster
· 07-09 19:50
Bom Deus, é outro problema com o contrato. Estes são os que fazem as pessoas de parvas até as cuecas.
Ver originalResponder0
BoredRiceBall
· 07-08 04:48
Mais uma quantidade de vulnerabilidades foi descoberta!
Ver originalResponder0
NotFinancialAdviser
· 07-06 20:27
O montante de feridos e mortos não é muito grande, certo~
Ver originalResponder0
LiquidationSurvivor
· 07-06 20:25
Mais uma vez, o projeto Naked Run
Ver originalResponder0
SelfSovereignSteve
· 07-06 20:14
Outro projeto de Airdrop condenado a fazer as pessoas de parvas.
Ver originalResponder0
GateUser-e87b21ee
· 07-06 20:12
Mais um projeto falhou.
Ver originalResponder0
VitaliksTwin
· 07-06 20:07
Só um pouco mais de seiscentos mil. Muito conservador.
Poolz sofre ataque de estouro aritmético, perda de 665 mil dólares.
Poolz sofre ataque de vulnerabilidade de estouro aritmético, com perda de cerca de 66,5 mil dólares.
Recentemente, os projetos Poolz nas redes Ethereum, Binance Smart Chain e Polygon sofreram um ataque, resultando no roubo de vários tokens, com um valor total de cerca de 66,5 mil dólares. O ataque ocorreu por volta das 3h16 UTC do dia 15 de março de 2023.
De acordo com os dados on-chain, este ataque envolveu vários tokens, incluindo MEE, ESNC, DON, ASW, KMON, POOLZ, entre outros. Os atacantes já trocaram parte dos tokens roubados por BNB, mas atualmente esses fundos ainda não foram transferidos.
O ataque explorou uma vulnerabilidade de estouro aritmético no contrato do Poolz. Especificamente, o problema está na função getArraySum dentro da função CreateMassPools. Esta função, ao calcular a liquidez inicial ao criar em massa os pools dos usuários, resultou em um estouro de inteiro devido ao tratamento incorreto de valores grandes.
Os atacantes, através de parâmetros de entrada cuidadosamente elaborados, fazem com que a função getArraySum retorne o valor 1, enquanto o valor real de _StartAmount é um número muito grande. Assim, o atacante precisa apenas transferir 1 token para registrar uma grande quantidade de liquidez inicial no sistema. Posteriormente, o atacante chama a função withdraw para retirar essa liquidez "falsa", completando assim o ataque.
Para evitar que esses problemas ocorram novamente, os especialistas recomendam que os desenvolvedores usem versões mais recentes do compilador Solidity, pois as novas versões realizam automaticamente verificações de estouro. Para projetos que utilizam versões mais antigas do Solidity, pode-se considerar a introdução da biblioteca SafeMath da OpenZeppelin para lidar com operações inteiras, a fim de evitar riscos de estouro.
Este incidente lembra-nos novamente que, no desenvolvimento de contratos inteligentes, é crucial tratar a segurança das operações aritméticas. Os desenvolvedores precisam estar sempre atentos aos possíveis problemas de estouro de inteiros e tomar as medidas apropriadas para proteger a segurança do contrato.