Trou noir avalé : la vulnérabilité de Vyper rend la courbe solidement renversée

Récemment, Curve, un protocole monétaire super stable, a été attaqué par une attaque de réentrance, causant de graves pertes. Voici l'analyse de sécurité et les recommandations de sécurité de MetaTrust Labs pour cette attaque.

Examen de l'événement

Selon le Twitter officiel de Curve Finance, le 31 juillet 2023, certains pools stables (alETH/msETH/pETH) écrits à l'aide de la version 0.2.15 de Vyper ont fait l'objet d'une attaque de réentrance. Curve Finance a déclaré que l'attaque avait été causée par un dysfonctionnement des verrous de réentrance dans la version 0.2.15 de Vyper et n'affectait que les pools utilisant de l'ETH pur. Actuellement, Curve évalue les dégâts et les autres piscines sont en sécurité.

Selon l'analyse de MetaTrust Labs, la vulnérabilité a été introduite entre août et octobre 2021, principalement en raison du compilateur version 0.2.15/0.2.16/0.3.0 de Vyper. La raison de la vulnérabilité est que la logique de réentrance dans le bytecode généré ne devrait pas prendre effet en raison d'un bogue dans le compilateur.

Selon les statistiques de la chaîne, l'incident de piratage du pool de pièces stables de Curve Finance a causé une perte cumulée de 52 millions de dollars américains dans les pools Alchemix, JPEG'd, CRV/ETH, etc. Le token CRV de Curve Finance a également été durement touché, en baisse de plus de 15 % sur la journée.

Analyse des causes

La raison pour laquelle Curve Finance a été attaquée cette fois-ci est que lorsque Curve a utilisé le langage Vyper pour écrire des contrats intelligents, il a utilisé la version 0.2.15 de Vyper.Il existe une vulnérabilité dans cette version appelée verrous de réentrance défectueux (échec de verrouillage de réentrance). une attaque de réentrance pour causer des pertes. La vulnérabilité de Curve Finance est cette fois une vulnérabilité spécifique au langage.

Les vulnérabilités spécifiques au langage font référence aux vulnérabilités causées par des défauts ou des incompatibilités dans un certain langage de programmation ou un compilateur lui-même. De telles vulnérabilités sont souvent difficiles à trouver et à prévenir, car elles ne sont pas causées par la négligence du développeur ou des erreurs logiques, mais par des problèmes avec la plate-forme technologique sous-jacente. Ces types de vulnérabilités ont également tendance à affecter plusieurs projets ou contrats car ils utilisent tous le même langage ou compilateur.

Vyper est un langage de programmation de contrats intelligents basé sur Python conçu pour une sécurité et une lisibilité accrues. Vyper prétend être un langage "de sécurité d'abord" et ne prend pas en charge certaines fonctionnalités pouvant entraîner des risques de sécurité, telles que les classes, l'héritage, les modificateurs, l'assemblage en ligne, etc. Cependant, Vyper n'est pas parfait, et il a encore quelques bugs ou failles qui peuvent affecter la sécurité du contrat. Par exemple, en plus de l'échec du verrouillage réentrant rencontré par Curve Finance cette fois-ci, Vyper a également rencontré des problèmes tels que le tableau hors limites, le débordement d'entiers et les erreurs d'accès au stockage.

Mesures de sécurité

Pour l'attaque de réentrance de Curve Finance cette fois, certaines contre-mesures ont été prises ou proposées. Voici quelques contre-mesures de sécurité que vous pouvez prendre :

  • Retrait de liquidité : pour les pools concernés, les utilisateurs peuvent choisir de retirer des liquidités pour éviter de nouvelles pertes. Curve Finance a fourni un bouton pour retirer des liquidités sur son site Web officiel, ce qui est pratique pour les utilisateurs.
  • Mettre à niveau le compilateur : pour les contrats qui utilisent le compilateur de version Vyper 0.2.15/0.2.16/0.3.0, il est recommandé de mettre à niveau vers la dernière version Vyper 0.3.1, qui a résolu le problème de l'échec du verrouillage de rentrée. Parallèlement, il est également recommandé d'utiliser d'autres outils ou méthodes pour vérifier la sécurité du contrat, comme la vérification formelle, l'audit de code, etc.
  • Soyez vigilant : pour les contrats rédigés en Vyper ou dans d'autres langages, il est recommandé d'être vigilant, de prêter attention aux mises à jour du langage ou du compilateur et aux corrections de bogues, et de prendre les mesures nécessaires en temps opportun pour protéger vos actifs. Dans le même temps, il est également recommandé, lors de l'utilisation d'un nouveau langage ou d'une nouvelle technologie, d'évaluer soigneusement sa maturité et sa stabilité, et d'éviter de rechercher aveuglément la fraîcheur ou l'efficacité.

Résumer

L'incident de réentrance de Curve Finance était un incident de sécurité malheureux et une leçon stimulante. Dans le domaine de la finance décentralisée (DeFi), la sécurité est toujours la priorité absolue. Les parties du projet doivent constamment améliorer leur sensibilisation et leurs capacités en matière de sécurité. Tout détail peut devenir une percée à exploiter pour les attaquants.

Suivez-nous

Twitter : @MetaTrustLabs

Site Web : metatrust.io

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