Le réseau Jarvis a subi une attaque de réentrance par Prêts Flash, avec une perte de 663 000 MATIC.

robot
Création du résumé en cours

Analyse de l'attaque par réinjection de Prêts Flash sur le projet Jarvis Network

Le 15 janvier 2023, le projet Jarvis_Network a été attaqué sur le réseau Polygon, entraînant une perte d'environ 663 000 MATIC. L'analyse montre que les attaquants ont exploité des Prêts Flash et une vulnérabilité de réentrance pour mener l'attaque.

Analyse de l'événement d'attaque par réinjection des Prêts Flash de Jarvis Network

L'analyse de la pile d'appels de transaction d'attaque montre que lors du réentré, l'appel de la même fonction du même contrat avec les mêmes paramètres d'entrée renvoie des valeurs de retour très différentes. Les valeurs de retour avant et après réentré sont respectivement :

  • Avant la réinjection : 1002157321772769944
  • Réentré : 10091002696492234934

Analyse de l'événement d'attaque par réinjection de Prêts Flash de Jarvis Network

La réinsertion se produit dans la fonction remove_liquidity. Cette fonction renvoie les jetons ajoutés par l'utilisateur lors de la suppression de la liquidité. Étant donné que Polygon est compatible avec EVM, cela a déclenché une réinsertion lors du transfert de MATIC au contrat.

Analyse de l'incident d'attaque par réinjection des Prêts Flash de Jarvis Network

Une analyse approfondie révèle que le problème réside dans l'implémentation de la fonction getUnderlyingPrice. Cette fonction implique une série de calculs internes et d'appels externes, dont la clé est la valeur de retour de la fonction get_virtual_price. Cette valeur de retour est influencée par la variable self.D, dont la mise à jour se produit après le transfert de jetons.

Analyse de l'événement d'attaque par réinjection de Prêts Flash de Jarvis Network

Lors de la suppression de la liquidité, après que MATIC a été transféré au contrat d'attaque, l'attaquant a d'abord interrogé le prix du jeton via un rappel. Comme self.D n'avait pas encore été mis à jour, cela a entraîné une erreur dans l'obtention du prix. L'attaquant a profité de ce décalage temporel pour multiplier par environ 10 le prix de l'emprunt lors de la réentrée.

Analyse de l'incident d'attaque par réinjection de Prêts Flash de Jarvis Network

Bien que la fonction remove_liquidity utilise le décorateur @nonreentrant('lock') pour prévenir les réentrées, l'attaquant a contourné ce mécanisme de protection par une réentrée inter-contrats.

Analyse de l'événement d'attaque par réinjection de Prêts Flash de Jarvis Network

Cette attaque a révélé plusieurs problèmes clés :

  1. La logique de modification des variables est située après l'appel externe, ce qui entraîne une anomalie dans l'obtention des prix.
  2. Le réentré inter-contrats rend le verrou de réentré inopérant.
  3. Ne pas suivre le modèle "Vérifications-Effects-Interactions" (Checks-Effects-Interactions).

Analyse de l'incident d'attaque par réentrance des Prêts Flash de Jarvis Network

Pour prévenir des attaques similaires, nous recommandons aux équipes de projet :

  • Effectuer un audit de sécurité rigoureux
  • Déplacer la modification des variables avant l'appel externe
  • Utiliser une méthode multi-sources pour obtenir le prix
  • Suivre la norme de codage "Vérifier-Effectuer-Interact"

Grâce à ces mesures, la sécurité et la stabilité du projet peuvent être considérablement améliorées.

Analyse des événements d'attaque par réinjection de Prêts Flash de Jarvis Network

Analyse de l'attaque par réentrance des Prêts Flash de Jarvis Network

Analyse de l'incident d'attaque par réinjection des Prêts Flash de Jarvis Network

Analyse de l'incident d'attaque par réinjection des Prêts Flash de Jarvis Network

Analyse de l'incident d'attaque par réinjection de Prêts Flash de Jarvis Network

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
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
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)