Euler Finance a subi une attaque de prêts flash, entraînant une perte de près de 200 millions de dollars.

robot
Création du résumé en cours

Le projet Euler Finance a subi une attaque de prêt 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 des pertes allant jusqu'à 197 millions de dollars. L'attaquant a exploité la faille d'absence de vérification de liquidité dans la fonction donateToReserves du contrat du projet, réalisant d'énormes profits grâce à plusieurs opérations.

Analyse de la vulnérabilité d'Euler Finance : comment subir une attaque par prêts flash, perte de 197 millions de dollars !

Analyse du processus d'attaque

  1. L'attaquant emprunte d'abord 30 millions de DAI via un Prêt Flash sur une plateforme de prêt, et déploie deux contrats : le contrat de prêt et le contrat de liquidation.

  2. L'attaquant a mis en garantie 20 millions de DAI empruntés dans le contrat du protocole Euler, obtenant 195 000 eDAI.

  3. En utilisant la fonction de levier de 10x du protocole Euler, l'attaquant a emprunté 1,956 millions d'eDAI et 2 millions de dDAI.

  4. L'attaquant utilise les 10 millions de DAI restants pour rembourser une partie de sa dette, détruit le dDAI correspondant, puis emprunte à nouveau une quantité équivalente d'eDAI et de dDAI.

  5. Étapes clés : l'attaquant appelle la fonction donateToReserves, fait un don de 1 million d'eDAI, puis liquidé par la fonction liquidate, obtenant 3,1 millions de dDAI et 2,5 millions de eDAI.

  6. Enfin, l'attaquant a extrait 389 000 DAI, remboursé 300 000 DAI de Prêts Flash, et a finalement réalisé un bénéfice de 88 700 DAI.

Analyse de la vulnérabilité d'Euler Finance : comment subir une attaque par Prêts Flash, perte de 197 millions de dollars !

Analyse des vulnérabilités d'Euler Finance : comment subir une attaque par Prêts Flash, perte de 1,97 milliard de dollars !

Analyse des vulnérabilités d'Euler Finance : comment subir une attaque par Prêts Flash, perte de 1,97 milliard de dollars !

Analyse des vulnérabilités d'Euler Finance : comment subir une attaque par Prêts Flash, perte de 1,97 milliard de dollars !

Analyse de la vulnérabilité d'Euler Finance : comment subir une attaque par Prêts Flash, perte de 1,97 milliard de dollars !

Analyse de la vulnérabilité d'Euler Finance : Comment subir une attaque par Prêts Flash, perte de 1,97 milliard de dollars !

Analyse de la vulnérabilité d'Euler Finance : Comment subir une attaque par prêts flash, perte de 197 millions de dollars !

Analyse de la vulnérabilité d'Euler Finance : Comment subir une attaque par Prêts Flash, perte de 1,97 milliard de dollars !

Analyse des vulnérabilités d'Euler Finance : Comment subir une attaque par Prêts Flash, perte de 1,97 milliard de dollars !

Causes de la vulnérabilité

La vulnérabilité centrale de cette attaque réside dans le fait que la fonction donateToReserves du contrat 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'opération checkLiquidity. Cela permet aux attaquants de contourner les vérifications de liquidité normales, de créer artificiellement un état pouvant être liquidé, puis de réaliser un profit lors de la liquidation.

Dans des conditions normales, la fonction checkLiquidity appelle le module RiskManager pour s'assurer que le nombre d'Etokens de l'utilisateur est supérieur au nombre de Dtokens, afin de maintenir la sécurité du contrat. Cependant, en raison de l'absence de cette étape clé dans la fonction donateToReserves, les attaquants ont pu exploiter cette vulnérabilité pour mener des attaques.

Analyse de la vulnérabilité d'Euler Finance : comment subir une attaque par prêts flash, perte de 197 millions de dollars !

Conseils de sécurité

Pour ce type d'attaque, nous conseillons aux projets blockchain :

  1. Effectuer un audit de sécurité complet avant le lancement du contrat, afin d'assurer la sécurité du contrat.

  2. Pour les projets de prêt, il est particulièrement important de prêter attention aux étapes clés telles que le remboursement des fonds, la détection de la liquidité et la liquidation des dettes.

  3. Assurez-vous que toutes les fonctions susceptibles d'affecter l'état des actifs des utilisateurs contiennent les vérifications de sécurité nécessaires, telles que les vérifications de liquidité.

  4. Effectuer régulièrement des revues de code et des mises à jour, et corriger rapidement les vulnérabilités découvertes.

  5. Établir un mécanisme de réponse d'urgence afin de pouvoir réagir et traiter rapidement en cas d'incident de sécurité.

En prenant ces mesures, les équipes de projet peuvent considérablement réduire le risque de subir des attaques similaires et améliorer la sécurité globale du contrat.

EUL-2.12%
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.
  • Récompense
  • 5
  • Reposter
  • Partager
Commentaire
0/400
WhaleWatchervip
· 08-11 16:40
Encore un pigeon qui entre en scène.
Voir l'originalRépondre0
Lonely_Validatorvip
· 08-10 08:22
La sécurité de la Blockchain est si mauvaise maintenant ? Sans mots.
Voir l'originalRépondre0
StakeWhisperervip
· 08-10 08:10
Encore un piège à jetons
Voir l'originalRépondre0
GweiWatchervip
· 08-10 07:58
Encore une mise en ligne sans vérifier le contrat ?
Voir l'originalRépondre0
HalfBuddhaMoneyvip
· 08-10 07:54
Encore un projet chute à zéro… chien en laisse
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)