Analyse de l'incident d'attaque par Prêts Flash de Cellframe Network
Le 1er juin 2023 à 10h07m55s (UTC+8), Cellframe Network a été victime d'une attaque de hacker sur la chaîne intelligente en raison d'un problème de calcul du nombre de tokens lors du processus de migration de liquidités. Cette attaque a permis aux hackers de réaliser un bénéfice d'environ 76 112 dollars.
Causes fondamentales de l'attaque
Le problème de calcul survenu lors du processus de migration de liquidité est la cause fondamentale de cette attaque.
Détails du processus d'attaque
L'attaquant commence par obtenir 1000 BNB et 500 000 jetons New Cell grâce aux Prêts Flash. Ensuite, il échange tous les jetons New Cell contre des BNB, ce qui fait que le nombre de BNB dans le pool approche de zéro. Enfin, il échange 900 BNB contre des jetons Old Cell.
Il est à noter que l'attaquant a ajouté de la liquidité pour Old Cell et BNB avant de mener l'attaque, obtenant ainsi Old lp.
Ensuite, l'attaquant appelle la fonction de migration de liquidité. À ce stade, il n'y a presque pas de BNB dans le nouveau pool, et il y a presque pas de jetons Old Cell dans l'ancien pool.
Le processus de migration comprend les étapes suivantes :
Retirer la liquidité ancienne et retourner le nombre correspondant de jetons aux utilisateurs
Ajouter de la nouvelle liquidité selon la proportion du nouveau pool
En raison de la quasi-absence de jetons Old Cell dans l'ancienne piscine, le nombre de BNB obtenus lors du retrait de liquidités augmente, tandis que le nombre de jetons Old Cell diminue. Cela entraîne une augmentation des valeurs de Resoult et Token1.
Les utilisateurs n'ont besoin d'ajouter qu'un petit montant de BNB et de jetons New Cell pour obtenir de la liquidité, tandis que les BNB excédentaires et les jetons Old Cell seront remboursés aux utilisateurs.
Enfin, l'attaquant retire la liquidité du nouveau pool et échange les jetons Old Cell retournés lors de la migration contre des BNB. À ce moment-là, il y a une grande quantité de jetons Old Cell dans l'ancien pool mais pas de BNB, l'attaquant échange à nouveau les jetons Old Cell contre des BNB, complétant ainsi le profit. Ensuite, l'attaquant répète l'opération de migration.
Résumé et recommandations
Lors de la migration de liquidités, il est important de prendre en compte les variations du nombre des deux types de jetons dans les anciennes et nouvelles pools ainsi que le prix actuel des jetons. Calculer directement en fonction du nombre des deux monnaies dans la paire de trading peut facilement être manipulé.
De plus, pour garantir la sécurité, l'équipe du projet doit effectuer un audit de sécurité complet avant le déploiement du code. Cela peut non seulement aider à détecter les vulnérabilités potentielles, mais aussi améliorer la sécurité et la fiabilité globales du système.
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.
Cellframe Network a subi une attaque de Prêts Flash, une vulnérabilité de migration de liquidité a causé des pertes de 76,112 dollars.
Analyse de l'incident d'attaque par Prêts Flash de Cellframe Network
Le 1er juin 2023 à 10h07m55s (UTC+8), Cellframe Network a été victime d'une attaque de hacker sur la chaîne intelligente en raison d'un problème de calcul du nombre de tokens lors du processus de migration de liquidités. Cette attaque a permis aux hackers de réaliser un bénéfice d'environ 76 112 dollars.
Causes fondamentales de l'attaque
Le problème de calcul survenu lors du processus de migration de liquidité est la cause fondamentale de cette attaque.
Détails du processus d'attaque
L'attaquant commence par obtenir 1000 BNB et 500 000 jetons New Cell grâce aux Prêts Flash. Ensuite, il échange tous les jetons New Cell contre des BNB, ce qui fait que le nombre de BNB dans le pool approche de zéro. Enfin, il échange 900 BNB contre des jetons Old Cell.
Il est à noter que l'attaquant a ajouté de la liquidité pour Old Cell et BNB avant de mener l'attaque, obtenant ainsi Old lp.
Ensuite, l'attaquant appelle la fonction de migration de liquidité. À ce stade, il n'y a presque pas de BNB dans le nouveau pool, et il y a presque pas de jetons Old Cell dans l'ancien pool.
Le processus de migration comprend les étapes suivantes :
En raison de la quasi-absence de jetons Old Cell dans l'ancienne piscine, le nombre de BNB obtenus lors du retrait de liquidités augmente, tandis que le nombre de jetons Old Cell diminue. Cela entraîne une augmentation des valeurs de Resoult et Token1.
Les utilisateurs n'ont besoin d'ajouter qu'un petit montant de BNB et de jetons New Cell pour obtenir de la liquidité, tandis que les BNB excédentaires et les jetons Old Cell seront remboursés aux utilisateurs.
Résumé et recommandations
Lors de la migration de liquidités, il est important de prendre en compte les variations du nombre des deux types de jetons dans les anciennes et nouvelles pools ainsi que le prix actuel des jetons. Calculer directement en fonction du nombre des deux monnaies dans la paire de trading peut facilement être manipulé.
De plus, pour garantir la sécurité, l'équipe du projet doit effectuer un audit de sécurité complet avant le déploiement du code. Cela peut non seulement aider à détecter les vulnérabilités potentielles, mais aussi améliorer la sécurité et la fiabilité globales du système.