L'incident d'attaque par débordement arithmétique du projet Poolz a entraîné une perte d'environ 66,5 milliers de dollars.
Récemment, un incident de sécurité concernant le projet multichaîne Poolz a attiré l'attention du secteur. Selon les données de surveillance de la blockchain, les attaquants ont exploité une vulnérabilité de débordement arithmétique dans le contrat intelligent, réussissant à voler une grande quantité de tokens du projet Poolz sur les réseaux Ethereum, BNB Chain et Polygon, d'une valeur totale d'environ 66,5 000 dollars.
L'attaque a eu lieu vers 3h16 UTC le 15 mars 2023. Les actifs volés comprennent plusieurs jetons ERC-20, tels que MEE, ESNC, DON, ASW, KMON, POOLZ, etc. Les attaquants ont ensuite échangé une partie des jetons contre des BNB, mais ces fonds n'ont pas encore été transférés.
Le problème central de cette attaque réside dans la fonction CreateMassPools du projet Poolz. Cette fonction était initialement destinée à créer des pools de liquidité en masse et à fournir une liquidité initiale, mais la fonction getArraySum présente une vulnérabilité de débordement d'entier. L'attaquant, en utilisant des paramètres d'entrée soigneusement élaborés, a fait en sorte que le résultat de l'addition dépasse la portée de uint256, entraînant un retour de valeur de 1.
Cependant, la fonction CreatePool a utilisé le paramètre _StartAmount d'origine lors de l'enregistrement des attributs de la pool, et non le nombre réel de jetons transférés. Cela a permis à l'attaquant de n'avoir besoin de transférer qu'un jeton pour enregistrer une liquidité initiale bien supérieure à la quantité réelle. Ensuite, l'attaquant a complété l'opération de retrait en appelant la fonction withdraw, réalisant ainsi l'objectif de l'attaque.
Pour éviter que ce genre de problème ne se reproduise, il est conseillé aux développeurs d'utiliser une version plus récente de Solidity pour compiler, afin de tirer parti de sa fonctionnalité intégrée de vérification des débordements. Pour les projets utilisant une version plus ancienne de Solidity, il peut être envisagé d'intégrer la bibliothèque SafeMath d'OpenZeppelin pour résoudre les problèmes de débordement d'entiers.
Cet événement nous rappelle une fois de plus l'importance de la sécurité et de l'audit de code dans le développement de contrats intelligents. Même une petite erreur arithmétique, apparemment insignifiante, peut être exploitée par des attaquants, entraînant d'énormes pertes économiques.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
10 J'aime
Récompense
10
5
Reposter
Partager
Commentaire
0/400
TrustMeBro
· 08-10 11:16
Haha, ce n'est que de l'argent. Le suivant.
Voir l'originalRépondre0
DeFiAlchemist
· 08-10 11:15
*ajuste des graphiques mystiques* un autre protocole tombe dans l'arithmétique noire... les chiffres ne mentent jamais
Voir l'originalRépondre0
RooftopReserver
· 08-10 11:13
C'est encore le meilleur moment pour se détendre sur le toit.
Voir l'originalRépondre0
HashBard
· 08-10 10:54
smh... un autre jour, une autre exploitation de débordement
Poolz a subi une attaque par débordement arithmétique, entraînant une perte de 665 000 dollars.
L'incident d'attaque par débordement arithmétique du projet Poolz a entraîné une perte d'environ 66,5 milliers de dollars.
Récemment, un incident de sécurité concernant le projet multichaîne Poolz a attiré l'attention du secteur. Selon les données de surveillance de la blockchain, les attaquants ont exploité une vulnérabilité de débordement arithmétique dans le contrat intelligent, réussissant à voler une grande quantité de tokens du projet Poolz sur les réseaux Ethereum, BNB Chain et Polygon, d'une valeur totale d'environ 66,5 000 dollars.
L'attaque a eu lieu vers 3h16 UTC le 15 mars 2023. Les actifs volés comprennent plusieurs jetons ERC-20, tels que MEE, ESNC, DON, ASW, KMON, POOLZ, etc. Les attaquants ont ensuite échangé une partie des jetons contre des BNB, mais ces fonds n'ont pas encore été transférés.
Le problème central de cette attaque réside dans la fonction CreateMassPools du projet Poolz. Cette fonction était initialement destinée à créer des pools de liquidité en masse et à fournir une liquidité initiale, mais la fonction getArraySum présente une vulnérabilité de débordement d'entier. L'attaquant, en utilisant des paramètres d'entrée soigneusement élaborés, a fait en sorte que le résultat de l'addition dépasse la portée de uint256, entraînant un retour de valeur de 1.
Cependant, la fonction CreatePool a utilisé le paramètre _StartAmount d'origine lors de l'enregistrement des attributs de la pool, et non le nombre réel de jetons transférés. Cela a permis à l'attaquant de n'avoir besoin de transférer qu'un jeton pour enregistrer une liquidité initiale bien supérieure à la quantité réelle. Ensuite, l'attaquant a complété l'opération de retrait en appelant la fonction withdraw, réalisant ainsi l'objectif de l'attaque.
Pour éviter que ce genre de problème ne se reproduise, il est conseillé aux développeurs d'utiliser une version plus récente de Solidity pour compiler, afin de tirer parti de sa fonctionnalité intégrée de vérification des débordements. Pour les projets utilisant une version plus ancienne de Solidity, il peut être envisagé d'intégrer la bibliothèque SafeMath d'OpenZeppelin pour résoudre les problèmes de débordement d'entiers.
Cet événement nous rappelle une fois de plus l'importance de la sécurité et de l'audit de code dans le développement de contrats intelligents. Même une petite erreur arithmétique, apparemment insignifiante, peut être exploitée par des attaquants, entraînant d'énormes pertes économiques.