O projeto Poolz sofreu um ataque de estouro aritmético, resultando em uma perda de aproximadamente 66,5 mil dólares.
Recentemente, um incidente de segurança envolvendo o projeto multichain Poolz chamou a atenção do setor. De acordo com dados de monitoramento de blockchain, os atacantes exploraram uma vulnerabilidade de estouro aritmético em contratos inteligentes, conseguindo roubar uma grande quantidade de tokens do projeto Poolz nas redes Ethereum, BNB Chain e Polygon, com um valor total de cerca de 66,5 mil dólares.
O ataque ocorreu às 3h16 UTC do dia 15 de março de 2023. Os ativos roubados incluíam vários tokens ERC-20, como MEE, ESNC, DON, ASW, KMON, POOLZ, entre outros. Os atacantes posteriormente trocaram parte dos tokens por BNB, mas atualmente esses fundos ainda não foram transferidos.
O problema central do ataque reside na função CreateMassPools do projeto Poolz. Esta função era originalmente utilizada para criar em massa pools de liquidez e fornecer liquidez inicial, mas a função getArraySum possui uma vulnerabilidade de estouro de inteiros. O atacante, através de parâmetros de entrada cuidadosamente elaborados, fez com que o resultado da soma excedesse o intervalo do uint256, resultando em um valor de retorno da função igual a 1.
No entanto, a função CreatePool usou o parâmetro _StartAmount original ao registrar as propriedades da pool, em vez da quantidade real de tokens transferidos. Isso fez com que o atacante precisasse apenas transferir 1 token para registrar uma liquidez inicial muito maior do que a quantidade real. Em seguida, o atacante completou a operação de retirada chamando a função withdraw, conseguindo assim o objetivo do ataque.
Para evitar que esses problemas ocorram novamente, recomenda-se que os desenvolvedores utilizem versões mais recentes do Solidity para compilar, a fim de aproveitar suas funcionalidades de verificação de estouro integradas. Para projetos que utilizam versões mais antigas do Solidity, pode-se considerar a introdução da biblioteca SafeMath da OpenZeppelin para resolver problemas de estouro de inteiros.
Este evento lembra-nos mais uma vez da importância da segurança e da auditoria de código no desenvolvimento de contratos inteligentes. Mesmo um pequeno erro aritmético pode ser explorado por atacantes, resultando em enormes perdas financeiras.
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
9 gostos
Recompensa
9
5
Republicar
Partilhar
Comentar
0/400
TrustMeBro
· 08-10 11:16
Hehe, é só um trocado. Próximo.
Ver originalResponder0
DeFiAlchemist
· 08-10 11:15
*ajusta gráficos místicos* mais um protocolo cai na aritmética obscura... os números nunca mentem
Ver originalResponder0
RooftopReserver
· 08-10 11:13
É novamente a melhor hora para relaxar no telhado.
Ver originalResponder0
HashBard
· 08-10 10:54
smh... mais um dia, mais uma exploração de overflow
Poolz sofreu um ataque de estouro aritmético, resultando em uma perda de 66,5 mil dólares.
O projeto Poolz sofreu um ataque de estouro aritmético, resultando em uma perda de aproximadamente 66,5 mil dólares.
Recentemente, um incidente de segurança envolvendo o projeto multichain Poolz chamou a atenção do setor. De acordo com dados de monitoramento de blockchain, os atacantes exploraram uma vulnerabilidade de estouro aritmético em contratos inteligentes, conseguindo roubar uma grande quantidade de tokens do projeto Poolz nas redes Ethereum, BNB Chain e Polygon, com um valor total de cerca de 66,5 mil dólares.
O ataque ocorreu às 3h16 UTC do dia 15 de março de 2023. Os ativos roubados incluíam vários tokens ERC-20, como MEE, ESNC, DON, ASW, KMON, POOLZ, entre outros. Os atacantes posteriormente trocaram parte dos tokens por BNB, mas atualmente esses fundos ainda não foram transferidos.
O problema central do ataque reside na função CreateMassPools do projeto Poolz. Esta função era originalmente utilizada para criar em massa pools de liquidez e fornecer liquidez inicial, mas a função getArraySum possui uma vulnerabilidade de estouro de inteiros. O atacante, através de parâmetros de entrada cuidadosamente elaborados, fez com que o resultado da soma excedesse o intervalo do uint256, resultando em um valor de retorno da função igual a 1.
No entanto, a função CreatePool usou o parâmetro _StartAmount original ao registrar as propriedades da pool, em vez da quantidade real de tokens transferidos. Isso fez com que o atacante precisasse apenas transferir 1 token para registrar uma liquidez inicial muito maior do que a quantidade real. Em seguida, o atacante completou a operação de retirada chamando a função withdraw, conseguindo assim o objetivo do ataque.
Para evitar que esses problemas ocorram novamente, recomenda-se que os desenvolvedores utilizem versões mais recentes do Solidity para compilar, a fim de aproveitar suas funcionalidades de verificação de estouro integradas. Para projetos que utilizam versões mais antigas do Solidity, pode-se considerar a introdução da biblioteca SafeMath da OpenZeppelin para resolver problemas de estouro de inteiros.
Este evento lembra-nos mais uma vez da importância da segurança e da auditoria de código no desenvolvimento de contratos inteligentes. Mesmo um pequeno erro aritmético pode ser explorado por atacantes, resultando em enormes perdas financeiras.