Euler Finance a subi une attaque par Prêts Flash, avec des pertes atteignant 197 millions de dollars.
Le 13 mars 2023, le projet Euler Finance a subi une attaque par prêts flash à grande échelle en raison d'une vulnérabilité dans ses contrats intelligents. L'attaquant a exploité une faille dans la fonction donateToReserves d'Etoken, qui manquait de vérification de liquidité, pour réaliser d'énormes profits en appelant plusieurs fois des opérations avec différentes devises. Les pertes totales causées par cette attaque s'élèvent à 197 millions de dollars, impliquant 6 types de jetons différents.
Analyse du processus d'attaque
Les étapes d'opération de l'attaquant sont les suivantes :
Emprunter 30 millions de DAI via des Prêts Flash sur une plateforme de prêt.
Déployer deux contrats : un pour le prêt et l'autre pour la liquidation.
Staker 20 millions DAI dans le contrat du protocole Euler pour obtenir 195 000 eDAI.
Utiliser la fonction d'emprunt avec un effet de levier de 10x du protocole Euler pour emprunter 1,956,000 eDAI et 2,000,000 dDAI.
Utiliser les 10 millions de DAI restants pour rembourser une partie de la dette et détruire le dDAI correspondant.
Prêter à nouveau 1 956 000 eDAI et 2 000 000 dDAI.
Appeler la fonction donateToReserves, donner un montant équivalent à 10 fois la somme remboursée (1 million eDAI).
Déclenchez la fonction de liquidation pour obtenir 3,1 millions d'dDAI et 2,5 millions d'eDAI.
Retrait de 389 000 DAI, remboursement de 300 000 Prêts Flash, bénéfice final de 88 700 DAI.
Analyse des vulnérabilités
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 clés (comme mint), la fonction donateToReserves n'exécute pas l'étape de checkLiquidity. Cette négligence permet aux utilisateurs de manipuler l'état de leur compte pour qu'il corresponde aux conditions de liquidation, puis de réaliser des profits grâce à la liquidation.
Dans des conditions normales, la fonction checkLiquidity appelle le module RiskManager pour s'assurer que l'Etoken de l'utilisateur est toujours supérieur au Dtoken, afin de maintenir un état de santé du système. Cependant, en raison de l'absence de ce contrôle clé dans la fonction donateToReserves, les attaquants ont pu contourner les mécanismes de sécurité du système.
Conseils de sécurité
Pour ce type d'attaque, nous proposons les recommandations de sécurité suivantes :
Un audit de sécurité complet doit être effectué avant le déploiement du contrat intelligent.
Les projets de prêt doivent accorder une attention particulière aux étapes clés telles que le remboursement des fonds, la détection de la liquidité et le règlement des dettes.
Assurez-vous que toutes les fonctions susceptibles d'affecter l'état des actifs des utilisateurs contiennent les vérifications de sécurité nécessaires.
Effectuer régulièrement des revues de code pour s'assurer que les nouvelles fonctionnalités n'introduisent pas de vulnérabilités potentielles.
Établir un mécanisme de réponse d'urgence afin de réagir rapidement en cas d'incident de sécurité.
Cet événement souligne à nouveau l'importance de la sécurité des contrats intelligents. Les équipes de projet doivent toujours placer la sécurité en priorité, en protégeant les actifs des utilisateurs par des pratiques de sécurité continues et des audits.
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
7
Reposter
Partager
Commentaire
0/400
TheMemefather
· 08-02 02:56
Il y a encore eu un problème avec le contrat.
Voir l'originalRépondre0
MetaEggplant
· 07-30 18:24
Encore une scène de vol de jetons par vulnérabilité
Voir l'originalRépondre0
RugPullProphet
· 07-30 18:22
Encore un festin de Rug Pull.
Voir l'originalRépondre0
LiquidationWatcher
· 07-30 18:22
Une autre mort de vulnérabilité intelligente
Voir l'originalRépondre0
CryptoNomics
· 07-30 18:12
Revue de code médiocre échouée
Voir l'originalRépondre0
PaperHandsCriminal
· 07-30 18:11
Un autre contrat est devenu courant.
Voir l'originalRépondre0
GateUser-afe07a92
· 07-30 17:56
Encore une fois, de l'argent durement gagné est parti.
Euler Finance a subi une attaque par Prêts Flash de 197 millions de dollars, une vulnérabilité des smart contracts ayant entraîné des pertes énormes.
Euler Finance a subi une attaque par Prêts Flash, avec des pertes atteignant 197 millions de dollars.
Le 13 mars 2023, le projet Euler Finance a subi une attaque par prêts flash à grande échelle en raison d'une vulnérabilité dans ses contrats intelligents. L'attaquant a exploité une faille dans la fonction donateToReserves d'Etoken, qui manquait de vérification de liquidité, pour réaliser d'énormes profits en appelant plusieurs fois des opérations avec différentes devises. Les pertes totales causées par cette attaque s'élèvent à 197 millions de dollars, impliquant 6 types de jetons différents.
Analyse du processus d'attaque
Les étapes d'opération de l'attaquant sont les suivantes :
Analyse des vulnérabilités
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 clés (comme mint), la fonction donateToReserves n'exécute pas l'étape de checkLiquidity. Cette négligence permet aux utilisateurs de manipuler l'état de leur compte pour qu'il corresponde aux conditions de liquidation, puis de réaliser des profits grâce à la liquidation.
Dans des conditions normales, la fonction checkLiquidity appelle le module RiskManager pour s'assurer que l'Etoken de l'utilisateur est toujours supérieur au Dtoken, afin de maintenir un état de santé du système. Cependant, en raison de l'absence de ce contrôle clé dans la fonction donateToReserves, les attaquants ont pu contourner les mécanismes de sécurité du système.
Conseils de sécurité
Pour ce type d'attaque, nous proposons les recommandations de sécurité suivantes :
Cet événement souligne à nouveau l'importance de la sécurité des contrats intelligents. Les équipes de projet doivent toujours placer la sécurité en priorité, en protégeant les actifs des utilisateurs par des pratiques de sécurité continues et des audits.