Euler Finance a subi une perte de 197 millions de dollars à la suite d'une attaque par prêts flash, la vulnérabilité du contrat étant la principale cause.
Euler Finance a subi une attaque par Prêts Flash, avec des pertes de près de 200 millions de dollars.
Le 13 mars, le projet Euler Finance a subi un flash loan attack en raison d'une vulnérabilité dans le contrat, entraînant une perte d'environ 197 millions de dollars. L'attaquant a exploité la faille dans la fonction donateToReserves du projet, qui manquait de vérification de liquidité, pour réaliser des bénéfices en effectuant plusieurs opérations avec différentes devises. À l'heure actuelle, les fonds volés restent bloqués dans le compte de l'attaquant.
Analyse du processus d'attaque
L'attaquant a d'abord emprunté 30 millions de DAI via un Prêt Flash sur une plateforme de prêt, puis a déployé deux contrats pour le prêt et la liquidation.
Staker 20 millions DAI dans le contrat du protocole Euler pour obtenir 19,5 millions eDAI.
Utiliser la fonction de levier 10x du protocole Euler pour emprunter 195,6 millions d'eDAI et 200 millions de dDAI.
Utiliser les 10 millions de DAI restants pour rembourser une partie de la dette et détruire le dDAI correspondant, puis emprunter à nouveau une quantité équivalente d'eDAI et de dDAI.
En faisant un don de 100 millions d'eDAI via la fonction donateToReserves, on appelle ensuite la fonction liquidate pour réaliser la liquidation, obtenant ainsi 310 millions de dDAI et 250 millions d'eDAI.
Enfin, extraction de 39 millions de DAI, remboursement de 30 millions de Prêts Flash, bénéfice net d'environ 8,87 millions de DAI.
Analyse des causes de la vulnérabilité
La principale raison du succès de l'attaque est que la fonction donateToReserves manque de vérifications nécessaires de la liquidité. Contrairement à d'autres fonctions clés comme mint, la fonction donateToReserves n'appelle pas checkLiquidity pour valider la liquidité de l'utilisateur. Cela permet à l'attaquant de rendre son compte liquidable par des opérations spécifiques, puis de réaliser un profit en procédant à la liquidation.
En temps normal, la fonction checkLiquidity appelle le module RiskManager pour s'assurer que le nombre d'Etokens des utilisateurs est toujours supérieur au nombre de Dtokens. Cependant, la fonction donateToReserves a sauté cette étape cruciale, créant une opportunité pour l'attaque.
Conseils de sécurité
Cet incident met à nouveau en lumière l'importance des audits de sécurité des contrats intelligents. Les équipes de projet doivent effectuer des vérifications de sécurité complètes et détaillées avant le lancement, en particulier pour les projets de prêt, il est essentiel de se concentrer sur les aspects suivants :
Intégrité du mécanisme de remboursement des fonds
Exhaustivité de la détection de la liquidité
La sécurité du processus de liquidation de la dette
Seule la garantie de la sécurité de ces étapes clés permettra de prévenir efficacement la survenance d'attaques similaires. Avec le développement continu de l'écosystème Web3, la sécurité des contrats intelligents continuera d'être un point focal d'intérêt pour l'industrie.
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.
12 J'aime
Récompense
12
6
Reposter
Partager
Commentaire
0/400
LongTermDreamer
· Il y a 16h
Dans trois ans, à nouveau une histoire de retour à la valeur. Ceux qui comprennent savent.
Voir l'originalRépondre0
GasBandit
· Il y a 16h
Encore la faute des smart contracts ? Comment est-ce que l'audit est réalisé ?
Voir l'originalRépondre0
RektCoaster
· Il y a 16h
Encore une bombe, encore un tas de plumes de poulet.
Voir l'originalRépondre0
AirdropHarvester
· Il y a 16h
Je ne pensais pas qu'Euler avait aussi fait faillite... tsk tsk
Voir l'originalRépondre0
just_here_for_vibes
· Il y a 16h
Encore explosé? Hommage aux Rug Pulls
Voir l'originalRépondre0
IronHeadMiner
· Il y a 16h
Encore une machine à prendre les gens pour des idiots qui a échoué...
Euler Finance a subi une perte de 197 millions de dollars à la suite d'une attaque par prêts flash, la vulnérabilité du contrat étant la principale cause.
Euler Finance a subi une attaque par Prêts Flash, avec des pertes de près de 200 millions de dollars.
Le 13 mars, le projet Euler Finance a subi un flash loan attack en raison d'une vulnérabilité dans le contrat, entraînant une perte d'environ 197 millions de dollars. L'attaquant a exploité la faille dans la fonction donateToReserves du projet, qui manquait de vérification de liquidité, pour réaliser des bénéfices en effectuant plusieurs opérations avec différentes devises. À l'heure actuelle, les fonds volés restent bloqués dans le compte de l'attaquant.
Analyse du processus d'attaque
L'attaquant a d'abord emprunté 30 millions de DAI via un Prêt Flash sur une plateforme de prêt, puis a déployé deux contrats pour le prêt et la liquidation.
Staker 20 millions DAI dans le contrat du protocole Euler pour obtenir 19,5 millions eDAI.
Utiliser la fonction de levier 10x du protocole Euler pour emprunter 195,6 millions d'eDAI et 200 millions de dDAI.
Utiliser les 10 millions de DAI restants pour rembourser une partie de la dette et détruire le dDAI correspondant, puis emprunter à nouveau une quantité équivalente d'eDAI et de dDAI.
En faisant un don de 100 millions d'eDAI via la fonction donateToReserves, on appelle ensuite la fonction liquidate pour réaliser la liquidation, obtenant ainsi 310 millions de dDAI et 250 millions d'eDAI.
Enfin, extraction de 39 millions de DAI, remboursement de 30 millions de Prêts Flash, bénéfice net d'environ 8,87 millions de DAI.
Analyse des causes de la vulnérabilité
La principale raison du succès de l'attaque est que la fonction donateToReserves manque de vérifications nécessaires de la liquidité. Contrairement à d'autres fonctions clés comme mint, la fonction donateToReserves n'appelle pas checkLiquidity pour valider la liquidité de l'utilisateur. Cela permet à l'attaquant de rendre son compte liquidable par des opérations spécifiques, puis de réaliser un profit en procédant à la liquidation.
En temps normal, la fonction checkLiquidity appelle le module RiskManager pour s'assurer que le nombre d'Etokens des utilisateurs est toujours supérieur au nombre de Dtokens. Cependant, la fonction donateToReserves a sauté cette étape cruciale, créant une opportunité pour l'attaque.
Conseils de sécurité
Cet incident met à nouveau en lumière l'importance des audits de sécurité des contrats intelligents. Les équipes de projet doivent effectuer des vérifications de sécurité complètes et détaillées avant le lancement, en particulier pour les projets de prêt, il est essentiel de se concentrer sur les aspects suivants :
Seule la garantie de la sécurité de ces étapes clés permettra de prévenir efficacement la survenance d'attaques similaires. Avec le développement continu de l'écosystème Web3, la sécurité des contrats intelligents continuera d'être un point focal d'intérêt pour l'industrie.