Poolz sofre ataque de estouro aritmético, com perda de cerca de 66,5 mil dólares
Recentemente, vários projetos Poolz em diferentes redes de blockchain foram atacados, resultando no roubo de uma grande quantidade de tokens, com um valor total de cerca de 66,5 mil dólares. Este ataque ocorreu em 15 de março de 2023, afetando contratos Poolz em várias redes, incluindo Ethereum, BNB Chain e Polygon.
Os atacantes exploraram uma vulnerabilidade de estouro aritmético no contrato inteligente Poolz. Especificamente, o problema está na função getArraySum dentro da função CreateMassPools. Esta função, ao calcular a liquidez inicial do pool, resulta em um estouro de inteiro, permitindo que os atacantes criem uma falsa aparência de alta liquidez apenas transferindo uma quantidade muito pequena de tokens.
O processo de ataque é o seguinte:
O atacante primeiro trocou uma pequena quantidade de tokens MNZ em um determinado DEX.
Em seguida, chamou a função CreateMassPools com vulnerabilidades. Essa função permite que os usuários criem pools de liquidez em massa e forneçam liquidez inicial.
Ao calcular o valor inicial da liquidez, a função getArraySum apresenta um estouro de inteiro. A soma do array fornecido pelo atacante excede o valor máximo que um uint256 pode representar, fazendo com que o valor de retorno da função se torne 1.
No entanto, o contrato ainda usou o valor do array _StartAmount original ao registrar as propriedades do pool. Isso fez com que o atacante realmente transferisse apenas 1 token, mas fosse registrado como possuindo uma enorme liquidez.
Por fim, o atacante chama a função withdraw para retirar fundos, completando o ataque.
Este incidente expôs o perigo da sobrecarga aritmética em contratos inteligentes. Para evitar problemas semelhantes, os desenvolvedores devem considerar o uso de versões mais recentes do compilador Solidity, que realizam automaticamente verificações de sobrecarga. Para projetos que utilizam versões mais antigas do Solidity, pode-se adotar a biblioteca SafeMath da OpenZeppelin para lidar com operações inteiras, a fim de evitar riscos de sobrecarga.
Este ataque reafirma a necessidade de prestar atenção especial à segurança das operações aritméticas ao desenvolver e auditar contratos inteligentes. Ao mesmo tempo, as partes do projeto devem realizar auditorias de segurança regularmente para detectar e corrigir rapidamente potenciais vulnerabilidades, a fim de proteger a segurança dos ativos dos usuários.
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.
16 Curtidas
Recompensa
16
6
Compartilhar
Comentário
0/400
OnChainDetective
· 7h atrás
vi este padrão de ataque antes... erro de overflow de inteiro de novato. quando é que os desenvolvedores vão aprender a usar safeMath smh
Ver originalResponder0
AirdropGrandpa
· 7h atrás
Mais uma vez estou com um stack overflow, que coisa!
Ver originalResponder0
CryptoSurvivor
· 7h atrás
Essa pequena vulnerabilidade pode ser descoberta, realmente é uma luta de sobrevivência.
Ver originalResponder0
FrogInTheWell
· 7h atrás
Mais uma vez um overflow... Você entende auditoria de segurança?
Ver originalResponder0
AlwaysAnon
· 7h atrás
Mais um projeto falhou.
Ver originalResponder0
HodlTheDoor
· 7h atrás
Mais uma vez, não consegui aproveitar o suficiente e já faliram.
Poolz sofre ataque de estouro aritmético, perda de 66,5 mil dólares, projetos multichain afetados
Poolz sofre ataque de estouro aritmético, com perda de cerca de 66,5 mil dólares
Recentemente, vários projetos Poolz em diferentes redes de blockchain foram atacados, resultando no roubo de uma grande quantidade de tokens, com um valor total de cerca de 66,5 mil dólares. Este ataque ocorreu em 15 de março de 2023, afetando contratos Poolz em várias redes, incluindo Ethereum, BNB Chain e Polygon.
Os atacantes exploraram uma vulnerabilidade de estouro aritmético no contrato inteligente Poolz. Especificamente, o problema está na função getArraySum dentro da função CreateMassPools. Esta função, ao calcular a liquidez inicial do pool, resulta em um estouro de inteiro, permitindo que os atacantes criem uma falsa aparência de alta liquidez apenas transferindo uma quantidade muito pequena de tokens.
O processo de ataque é o seguinte:
O atacante primeiro trocou uma pequena quantidade de tokens MNZ em um determinado DEX.
Em seguida, chamou a função CreateMassPools com vulnerabilidades. Essa função permite que os usuários criem pools de liquidez em massa e forneçam liquidez inicial.
Ao calcular o valor inicial da liquidez, a função getArraySum apresenta um estouro de inteiro. A soma do array fornecido pelo atacante excede o valor máximo que um uint256 pode representar, fazendo com que o valor de retorno da função se torne 1.
No entanto, o contrato ainda usou o valor do array _StartAmount original ao registrar as propriedades do pool. Isso fez com que o atacante realmente transferisse apenas 1 token, mas fosse registrado como possuindo uma enorme liquidez.
Por fim, o atacante chama a função withdraw para retirar fundos, completando o ataque.
Este incidente expôs o perigo da sobrecarga aritmética em contratos inteligentes. Para evitar problemas semelhantes, os desenvolvedores devem considerar o uso de versões mais recentes do compilador Solidity, que realizam automaticamente verificações de sobrecarga. Para projetos que utilizam versões mais antigas do Solidity, pode-se adotar a biblioteca SafeMath da OpenZeppelin para lidar com operações inteiras, a fim de evitar riscos de sobrecarga.
Este ataque reafirma a necessidade de prestar atenção especial à segurança das operações aritméticas ao desenvolver e auditar contratos inteligentes. Ao mesmo tempo, as partes do projeto devem realizar auditorias de segurança regularmente para detectar e corrigir rapidamente potenciais vulnerabilidades, a fim de proteger a segurança dos ativos dos usuários.