Le projet Euler Finance a subi une attaque par Prêts Flash, entraînant une perte de près de 200 millions de dollars.
Le 13 mars 2023, le projet Euler Finance a subi une attaque de prêt flash, entraînant une perte énorme d’environ 197 millions de dollars. L’attaquant a exploité une vulnérabilité dans le contrat de projet pour mener à bien l’attaque par le biais de plusieurs opérations. Pour l’instant, les fonds volés restent sur les comptes des attaquants.
Analyse du processus d'attaque
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 : un contrat de prêt et un contrat de liquidation.
L'attaquant a prêté 20 millions de DAI dans le contrat du protocole Euler et a obtenu 19,5 millions d'eDAI.
En utilisant la fonction de levier du protocole Euler, l'attaquant a emprunté 195,6 millions d'eDAI et 200 millions de dDAI.
L'attaquant utilise les 10 millions de DAI restants pour rembourser une partie de sa dette, a détruit 10 millions de dDAI, puis emprunte à nouveau 195,6 millions de eDAI et 200 millions de dDAI.
Étapes clés : l'attaquant appelle la fonction donateToReserves, fait un don de 100 millions d'eDAI, puis procède à la liquidation via la fonction liquidate, obtenant 310 millions de dDAI et 250 millions d'eDAI.
Enfin, l'attaquant a extrait 38,9 millions de DAI, a remboursé 30 millions de DAI de Prêts Flash, et a finalement réalisé un bénéfice de 8,87 millions de DAI.
Raison de la faille
La principale raison du succès de l'attaque est le défaut de la fonction donateToReserves dans le contrat Euler Finance. Contrairement à d'autres fonctions clés, cette fonction manque d'une étape de vérification de liquidité nécessaire (checkLiquidity). Cette vérification aurait dû garantir que le nombre d'eTokens des utilisateurs soit supérieur au nombre de dTokens, afin de maintenir la santé du contrat.
En raison de l'absence de ce contrôle clé, un attaquant peut, par des opérations spécifiques, se retrouver dans un état pouvant être liquidé, puis exploiter cela pour mener à bien l'attaque.
Conseils de sécurité
Pour des projets de prêt similaires, il est nécessaire de prêter une attention particulière aux points clés suivants :
La sécurité du mécanisme de remboursement des fonds
Exhaustivité de la détection de liquidité
La rigueur du processus de liquidation des dettes
Avant le lancement du contrat, il est crucial de procéder à un audit de sécurité complet et professionnel. Cela permet non seulement de détecter d'éventuelles vulnérabilités, mais aussi d'assurer la sécurité et la stabilité globales du contrat.
Cet événement souligne à nouveau l'importance de la sécurité des contrats dans le domaine de la finance décentralisée. Les équipes de projet doivent toujours placer la sécurité en priorité pour protéger les actifs des utilisateurs et maintenir le développement sain de l'ensemble de l'écosystè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.
Euler Finance a subi une attaque par prêts flash, entraînant une perte de près de 200 millions de dollars.
Le projet Euler Finance a subi une attaque par Prêts Flash, entraînant une perte de près de 200 millions de dollars.
Le 13 mars 2023, le projet Euler Finance a subi une attaque de prêt flash, entraînant une perte énorme d’environ 197 millions de dollars. L’attaquant a exploité une vulnérabilité dans le contrat de projet pour mener à bien l’attaque par le biais de plusieurs opérations. Pour l’instant, les fonds volés restent sur les comptes des attaquants.
Analyse du processus d'attaque
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 : un contrat de prêt et un contrat de liquidation.
L'attaquant a prêté 20 millions de DAI dans le contrat du protocole Euler et a obtenu 19,5 millions d'eDAI.
En utilisant la fonction de levier du protocole Euler, l'attaquant a emprunté 195,6 millions d'eDAI et 200 millions de dDAI.
L'attaquant utilise les 10 millions de DAI restants pour rembourser une partie de sa dette, a détruit 10 millions de dDAI, puis emprunte à nouveau 195,6 millions de eDAI et 200 millions de dDAI.
Étapes clés : l'attaquant appelle la fonction donateToReserves, fait un don de 100 millions d'eDAI, puis procède à la liquidation via la fonction liquidate, obtenant 310 millions de dDAI et 250 millions d'eDAI.
Enfin, l'attaquant a extrait 38,9 millions de DAI, a remboursé 30 millions de DAI de Prêts Flash, et a finalement réalisé un bénéfice de 8,87 millions de DAI.
Raison de la faille
La principale raison du succès de l'attaque est le défaut de la fonction donateToReserves dans le contrat Euler Finance. Contrairement à d'autres fonctions clés, cette fonction manque d'une étape de vérification de liquidité nécessaire (checkLiquidity). Cette vérification aurait dû garantir que le nombre d'eTokens des utilisateurs soit supérieur au nombre de dTokens, afin de maintenir la santé du contrat.
En raison de l'absence de ce contrôle clé, un attaquant peut, par des opérations spécifiques, se retrouver dans un état pouvant être liquidé, puis exploiter cela pour mener à bien l'attaque.
Conseils de sécurité
Pour des projets de prêt similaires, il est nécessaire de prêter une attention particulière aux points clés suivants :
Avant le lancement du contrat, il est crucial de procéder à un audit de sécurité complet et professionnel. Cela permet non seulement de détecter d'éventuelles vulnérabilités, mais aussi d'assurer la sécurité et la stabilité globales du contrat.
Cet événement souligne à nouveau l'importance de la sécurité des contrats dans le domaine de la finance décentralisée. Les équipes de projet doivent toujours placer la sécurité en priorité pour protéger les actifs des utilisateurs et maintenir le développement sain de l'ensemble de l'écosystème.