Euler Finance a subi une attaque de prêt flash, avec des pertes s'élevant à 197 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 d'énormes pertes. L'attaquant a exploité une faille dans la fonction donateToReserves du contrat, qui manquait de vérification de liquidité, pour obtenir d'importants fonds par plusieurs opérations. Cet incident a impliqué 6 types de jetons, avec une perte totale atteignant 197 millions de dollars.
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, et a déployé deux contrats : un contrat de prêt et un contrat de liquidation.
L'attaquant a staké 20 millions de DAI dans le contrat du protocole Euler, obtenant 195 000 eDAI.
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.
L'attaquant utilise les 10 millions de DAI restants pour rembourser une partie de la dette et détruit le dDAI correspondant, puis emprunte à nouveau 1,956,000 eDAI et 2,000,000 dDAI.
Étapes clés : l'attaquant appelle la fonction donateToReserves et fait un don de 1 million d'eDAI (ce qui représente 10 fois le montant remboursé). Ensuite, l'attaquant appelle la fonction liquidate pour procéder à la liquidation, obtenant 3,1 millions de dDAI et 2,5 millions d'eDAI.
Enfin, l'attaquant a extrait 389 000 DAI et a remboursé le prêt flash de 30 millions DAI, réalisant finalement un bénéfice de 8,87 millions DAI.
Analyse des causes des vulnérabilités
Le problème central 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 à la fonction mint, la fonction donateToReserves n'exécute pas l'étape checkLiquidity, ce qui permet à l'attaquant de contourner les vérifications de liquidité normales.
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. Cependant, en raison de l'absence de cette étape clé dans la fonction donateToReserves, l'attaquant a pu exploiter cette faille, se plaçant d'abord dans un état pouvant être liquidé, puis réalisant l'opération de liquidation.
Conseils de sécurité
Pour ce type d'attaque, nous recommandons aux projets DeFi :
Effectuer un audit de sécurité complet avant le lancement du contrat pour garantir la sécurité du contrat.
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 le règlement de la dette.
Des contrôles de liquidité stricts doivent être mis en œuvre dans chaque fonction susceptible d'affecter l'état des fonds des utilisateurs.
Effectuer des examens et des mises à jour de code réguliers, en réparant rapidement les vulnérabilités découvertes.
Envisagez d'introduire des mécanismes de signature multiple ou des mesures de sécurité supplémentaires telles que le verrouillage temporel.
Cet incident nous rappelle une fois de plus que, dans le domaine en pleine expansion de la DeFi, la sécurité des contrats est toujours cruciale. Les équipes de projet doivent constamment renforcer leur sensibilisation à la sécurité et adopter des mesures de protection multiples pour protéger la sécurité des actifs des utilisateurs.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
15 J'aime
Récompense
15
7
Partager
Commentaire
0/400
HodlVeteran
· 07-13 01:44
Encore un piège, le conducteur expérimenté y marche depuis dix ans.
Voir l'originalRépondre0
DiamondHands
· 07-13 01:36
Encore encore encore explosé
Voir l'originalRépondre0
GasFeeCrier
· 07-12 00:27
Le contrat est vraiment trop flou.
Voir l'originalRépondre0
NftMetaversePainter
· 07-10 03:38
encore une autre exploitation primitive due à une vérification algorithmique inadéquate...smh web3 pleure littéralement rn
Voir l'originalRépondre0
SocialAnxietyStaker
· 07-10 03:26
Le contrat est vraiment sécurisant.
Voir l'originalRépondre0
StakeOrRegret
· 07-10 03:23
Les chiens de vulnérabilité sont à la mode.
Voir l'originalRépondre0
BearMarketSurvivor
· 07-10 03:18
Une autre perte de bataille, le marché a été activé.
Euler Finance a subi une attaque par prêts flash, entraînant une perte de 197 millions de dollars.
Euler Finance a subi une attaque de prêt flash, avec des pertes s'élevant à 197 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 d'énormes pertes. L'attaquant a exploité une faille dans la fonction donateToReserves du contrat, qui manquait de vérification de liquidité, pour obtenir d'importants fonds par plusieurs opérations. Cet incident a impliqué 6 types de jetons, avec une perte totale atteignant 197 millions de dollars.
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, et a déployé deux contrats : un contrat de prêt et un contrat de liquidation.
L'attaquant a staké 20 millions de DAI dans le contrat du protocole Euler, obtenant 195 000 eDAI.
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.
L'attaquant utilise les 10 millions de DAI restants pour rembourser une partie de la dette et détruit le dDAI correspondant, puis emprunte à nouveau 1,956,000 eDAI et 2,000,000 dDAI.
Étapes clés : l'attaquant appelle la fonction donateToReserves et fait un don de 1 million d'eDAI (ce qui représente 10 fois le montant remboursé). Ensuite, l'attaquant appelle la fonction liquidate pour procéder à la liquidation, obtenant 3,1 millions de dDAI et 2,5 millions d'eDAI.
Enfin, l'attaquant a extrait 389 000 DAI et a remboursé le prêt flash de 30 millions DAI, réalisant finalement un bénéfice de 8,87 millions DAI.
Analyse des causes des vulnérabilités
Le problème central 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 à la fonction mint, la fonction donateToReserves n'exécute pas l'étape checkLiquidity, ce qui permet à l'attaquant de contourner les vérifications de liquidité normales.
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. Cependant, en raison de l'absence de cette étape clé dans la fonction donateToReserves, l'attaquant a pu exploiter cette faille, se plaçant d'abord dans un état pouvant être liquidé, puis réalisant l'opération de liquidation.
Conseils de sécurité
Pour ce type d'attaque, nous recommandons aux projets DeFi :
Effectuer un audit de sécurité complet avant le lancement du contrat pour garantir la sécurité du contrat.
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 le règlement de la dette.
Des contrôles de liquidité stricts doivent être mis en œuvre dans chaque fonction susceptible d'affecter l'état des fonds des utilisateurs.
Effectuer des examens et des mises à jour de code réguliers, en réparant rapidement les vulnérabilités découvertes.
Envisagez d'introduire des mécanismes de signature multiple ou des mesures de sécurité supplémentaires telles que le verrouillage temporel.
Cet incident nous rappelle une fois de plus que, dans le domaine en pleine expansion de la DeFi, la sécurité des contrats est toujours cruciale. Les équipes de projet doivent constamment renforcer leur sensibilisation à la sécurité et adopter des mesures de protection multiples pour protéger la sécurité des actifs des utilisateurs.