Euler Finance a subi une attaque par Prêts Flash, avec des pertes de près de 200 millions de dollars.
Le 13 mars 2023, le projet Euler Finance a subi une attaque par prêts flash 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 liée à l'absence de vérification de liquidité de la fonction donateToReserves de l'Etoken dans le projet, en réalisant plusieurs opérations avec différentes devises pour obtenir d'énormes profits.
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 : un contrat de prêt et un contrat de liquidation.
Ensuite, 20 millions de DAI sont mis en garantie dans le contrat du protocole Euler, obtenant 19,5 millions d'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 les dDAI correspondants, puis emprunter à nouveau une quantité équivalente d'eDAI et de dDAI.
Faire un don de 100 millions d'eDAI via la fonction donateToReserves (10 fois le montant à rembourser), puis exécuter immédiatement l'opération de liquidation pour obtenir 310 millions de dDAI et 250 millions d'eDAI.
Enfin, extraction de 38,9 millions de DAI, remboursement des Prêts Flash de 30 millions de DAI, bénéfice net d'environ 8,87 millions de DAI.
Causes de la vulnérabilité
La clé du succès de l'attaque réside dans le fait que la fonction donateToReserves d'Euler Finance manque de vérifications de liquidité nécessaires. Contrairement à d'autres fonctions comme mint, donateToReserves n'appelle pas la fonction checkLiquidity pour vérifier l'état des fonds de l'utilisateur. Cela permet à l'attaquant de manipuler son propre compte pour entrer dans un état pouvant être liquidé, puis d'exécuter la liquidation pour réaliser un profit.
Dans des conditions normales, la fonction checkLiquidity appelle le module RiskManager pour s'assurer que le nombre d'Etoken de l'utilisateur est supérieur au nombre de Dtoken, afin de maintenir la santé du compte. Cependant, la fonction donateToReserves a contourné cette étape cruciale, offrant ainsi une opportunité aux attaquants.
Conseils de sécurité
Cet événement met en évidence l'importance de l'audit de sécurité des contrats intelligents. Pour les projets de prêt, il est particulièrement important de se concentrer sur les aspects suivants :
L'intégrité du mécanisme de remboursement des fonds
Exhaustivité de la détection de la liquidité
La rigueur du processus de liquidation de la dette
Les équipes de projet doivent effectuer un audit de sécurité complet et approfondi avant le déploiement des contrats, afin de garantir la sécurité et la stabilité de toutes les fonctionnalités. De plus, une surveillance continue de la sécurité et des corrections de vulnérabilités en temps opportun sont également des mesures nécessaires pour garantir le fonctionnement sécurisé à long terme du projet.
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.
16 J'aime
Récompense
16
7
Reposter
Partager
Commentaire
0/400
Ser_Liquidated
· 07-14 00:49
Encore un projet à sacrifier, merci.
Voir l'originalRépondre0
mev_me_maybe
· 07-14 00:03
Encore encore encore été victime de dumping.
Voir l'originalRépondre0
0xSoulless
· 07-13 14:42
pigeons année après année prendre les gens pour des idiots, après avoir pris les gens pour des idiots, on continue à prendre les gens pour des idiots.
Voir l'originalRépondre0
RugpullSurvivor
· 07-11 02:50
Encore une grande casserole ! Vous n'avez pas un peu de culpabilité ?
Voir l'originalRépondre0
GasFeeCrier
· 07-11 02:46
Attendre que le projet de fête disparaisse avec un Rug Pull
Voir l'originalRépondre0
GasFeeCrybaby
· 07-11 02:39
Encore une fois volé, tss tss
Voir l'originalRépondre0
GasWaster
· 07-11 02:35
rip... une autre leçon coûteuse en optimisation de gas smh
Euler Finance a subi une attaque de 200 millions de dollars par des Prêts Flash, les vulnérabilités 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 2023, le projet Euler Finance a subi une attaque par prêts flash 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 liée à l'absence de vérification de liquidité de la fonction donateToReserves de l'Etoken dans le projet, en réalisant plusieurs opérations avec différentes devises pour obtenir d'énormes profits.
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 : un contrat de prêt et un contrat de liquidation.
Ensuite, 20 millions de DAI sont mis en garantie dans le contrat du protocole Euler, obtenant 19,5 millions d'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 les dDAI correspondants, puis emprunter à nouveau une quantité équivalente d'eDAI et de dDAI.
Faire un don de 100 millions d'eDAI via la fonction donateToReserves (10 fois le montant à rembourser), puis exécuter immédiatement l'opération de liquidation pour obtenir 310 millions de dDAI et 250 millions d'eDAI.
Enfin, extraction de 38,9 millions de DAI, remboursement des Prêts Flash de 30 millions de DAI, bénéfice net d'environ 8,87 millions de DAI.
Causes de la vulnérabilité
La clé du succès de l'attaque réside dans le fait que la fonction donateToReserves d'Euler Finance manque de vérifications de liquidité nécessaires. Contrairement à d'autres fonctions comme mint, donateToReserves n'appelle pas la fonction checkLiquidity pour vérifier l'état des fonds de l'utilisateur. Cela permet à l'attaquant de manipuler son propre compte pour entrer dans un état pouvant être liquidé, puis d'exécuter la liquidation pour réaliser un profit.
Dans des conditions normales, la fonction checkLiquidity appelle le module RiskManager pour s'assurer que le nombre d'Etoken de l'utilisateur est supérieur au nombre de Dtoken, afin de maintenir la santé du compte. Cependant, la fonction donateToReserves a contourné cette étape cruciale, offrant ainsi une opportunité aux attaquants.
Conseils de sécurité
Cet événement met en évidence l'importance de l'audit de sécurité des contrats intelligents. Pour les projets de prêt, il est particulièrement important de se concentrer sur les aspects suivants :
Les équipes de projet doivent effectuer un audit de sécurité complet et approfondi avant le déploiement des contrats, afin de garantir la sécurité et la stabilité de toutes les fonctionnalités. De plus, une surveillance continue de la sécurité et des corrections de vulnérabilités en temps opportun sont également des mesures nécessaires pour garantir le fonctionnement sécurisé à long terme du projet.