Poolz sofre ataque de vulnerabilidade de estouro aritmético, com perdas de quase 670 mil dólares
Recentemente, um ataque ao projeto Poolz em várias cadeias chamou a atenção da indústria. De acordo com os dados de monitoramento na cadeia, o ataque ocorreu em 15 de março de 2023, envolvendo várias blockchains públicas, incluindo Ethereum, BNB Chain e Polygon.
Este ataque resultou no roubo de uma grande quantidade de tokens, incluindo tokens de vários projetos como MEE, ESNC, DON, ASW, KMON, POOLZ, entre outros. A estimativa inicial é que o valor total dos ativos roubados seja de aproximadamente 665.000 dólares. Atualmente, alguns dos tokens roubados já foram trocados pelos atacantes por BNB, mas ainda não foram transferidos para fora do endereço sob controle dos atacantes.
A análise mostra que o ataque aproveitou principalmente a vulnerabilidade de estouro aritmético no contrato inteligente do projeto Poolz. O atacante, através de parâmetros de entrada cuidadosamente elaborados, acionou o estouro inteiro ao criar em massa os pools de liquidez, conseguindo assim obter uma grande quantidade de liquidez com uma quantidade muito pequena de tokens.
Especificamente, o atacante primeiro trocou uma pequena quantidade de tokens MNZ em uma determinada exchange descentralizada. Em seguida, o atacante chamou a função CreateMassPools do contrato Poolz, que permite aos usuários criar pools de liquidez em massa e fornecer liquidez inicial. O problema ocorreu na função getArraySum, que é usada para calcular o total de liquidez inicial fornecida pelo usuário.
Os atacantes elaboraram cuidadosamente um array contendo valores extremamente grandes como parâmetros de entrada. Quando esses valores foram somados, ocorreu um estouro de inteiro, resultando em uma grande discrepância entre a quantidade de tokens realmente transferidos e a quantidade registrada. No final, o atacante transferiu apenas 1 token, mas registrou um enorme valor de liquidez no contrato.
Após concluir as operações acima, o atacante imediatamente chamou a função withdraw para retirar os fundos, completando facilmente todo o processo de ataque.
Este incidente destaca novamente a perigosidade do problema de estouro aritmético em contratos inteligentes. Para prevenir riscos semelhantes, especialistas da indústria recomendam que os desenvolvedores utilizem versões mais recentes da linguagem de programação Solidity, que realizam automaticamente verificações de estouro durante o processo de compilação. Para projetos que utilizam versões mais antigas do Solidity, pode-se considerar a introdução de bibliotecas de segurança consolidadas como a OpenZeppelin para resolver o problema de estouro de inteiros.
Este evento nos lembra que, no ecossistema blockchain, a segurança dos contratos continua a ser uma questão-chave que não pode ser ignorada. As equipes de projeto precisam reforçar constantemente a auditoria de código e os testes de segurança, enquanto os usuários que participam de novos projetos devem permanecer vigilantes e avaliar cuidadosamente os riscos envolvidos.
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.
18 gostos
Recompensa
18
5
Partilhar
Comentar
0/400
PositionPhobia
· 10h atrás
Perdi muito, não consigo nem parar a perda.
Ver originalResponder0
StrawberryIce
· 10h atrás
Tantos buracos, qual contrato é confiável!
Ver originalResponder0
InscriptionGriller
· 10h atrás
Outro brilhante exemplo de zero COVID, todos os dias fazem as pessoas de parvas.
Ver originalResponder0
SeasonedInvestor
· 10h atrás
Mais uma vez sendo explorado! Que contrato está a ser testado?
Ver originalResponder0
SchrodingersPaper
· 11h atrás
Já foi novamente? Jogar contratos ainda não é um teste de overflow! Muito mau!
Poolz sofre ataque de estouro aritmético; perdas de quase 67 mil dólares em várias cadeias.
Poolz sofre ataque de vulnerabilidade de estouro aritmético, com perdas de quase 670 mil dólares
Recentemente, um ataque ao projeto Poolz em várias cadeias chamou a atenção da indústria. De acordo com os dados de monitoramento na cadeia, o ataque ocorreu em 15 de março de 2023, envolvendo várias blockchains públicas, incluindo Ethereum, BNB Chain e Polygon.
Este ataque resultou no roubo de uma grande quantidade de tokens, incluindo tokens de vários projetos como MEE, ESNC, DON, ASW, KMON, POOLZ, entre outros. A estimativa inicial é que o valor total dos ativos roubados seja de aproximadamente 665.000 dólares. Atualmente, alguns dos tokens roubados já foram trocados pelos atacantes por BNB, mas ainda não foram transferidos para fora do endereço sob controle dos atacantes.
A análise mostra que o ataque aproveitou principalmente a vulnerabilidade de estouro aritmético no contrato inteligente do projeto Poolz. O atacante, através de parâmetros de entrada cuidadosamente elaborados, acionou o estouro inteiro ao criar em massa os pools de liquidez, conseguindo assim obter uma grande quantidade de liquidez com uma quantidade muito pequena de tokens.
Especificamente, o atacante primeiro trocou uma pequena quantidade de tokens MNZ em uma determinada exchange descentralizada. Em seguida, o atacante chamou a função CreateMassPools do contrato Poolz, que permite aos usuários criar pools de liquidez em massa e fornecer liquidez inicial. O problema ocorreu na função getArraySum, que é usada para calcular o total de liquidez inicial fornecida pelo usuário.
Os atacantes elaboraram cuidadosamente um array contendo valores extremamente grandes como parâmetros de entrada. Quando esses valores foram somados, ocorreu um estouro de inteiro, resultando em uma grande discrepância entre a quantidade de tokens realmente transferidos e a quantidade registrada. No final, o atacante transferiu apenas 1 token, mas registrou um enorme valor de liquidez no contrato.
Após concluir as operações acima, o atacante imediatamente chamou a função withdraw para retirar os fundos, completando facilmente todo o processo de ataque.
Este incidente destaca novamente a perigosidade do problema de estouro aritmético em contratos inteligentes. Para prevenir riscos semelhantes, especialistas da indústria recomendam que os desenvolvedores utilizem versões mais recentes da linguagem de programação Solidity, que realizam automaticamente verificações de estouro durante o processo de compilação. Para projetos que utilizam versões mais antigas do Solidity, pode-se considerar a introdução de bibliotecas de segurança consolidadas como a OpenZeppelin para resolver o problema de estouro de inteiros.
Este evento nos lembra que, no ecossistema blockchain, a segurança dos contratos continua a ser uma questão-chave que não pode ser ignorada. As equipes de projeto precisam reforçar constantemente a auditoria de código e os testes de segurança, enquanto os usuários que participam de novos projetos devem permanecer vigilantes e avaliar cuidadosamente os riscos envolvidos.