Aller au contenu
Fondé MMXXVIVol. VI · № 273RSS
Blockchain Breaches

Archive des incidents de sécurité dans les cryptomonnaies — piratages, exploits, défaillances de ponts et rug pulls, documentés avec des preuves on-chain.

Dossier № 040Bug de smart contract

Rug pull inversé d'Alchemix

Un bug de déploiement a créé des vaults Alchemix fantômes dirigeant 6,5 M$ de récompenses vers le remboursement des dettes utilisateurs. Mint gelé en 15 min.

Date
Victime
Alchemix
Chaîne(s)
Statut
Partiellement récupéré

Le 16 juin 2021, le protocole de prêt auto-remboursant Alchemix a connu ce qui fut baptisé un « rug pull inversé » : un bug du script de déploiement a fait que près de 6,5 millions de dollars de fonds de récompenses ont coulé vers le mauvais vault, où ils ont accidentellement remboursé les dettes alETH des utilisateurs. Les utilisateurs ont alors pu retirer leur collatéral ETH sans rembourser leurs prêts — recevant de l'argent gratuit aux frais du protocole plutôt que l'inverse. L'équipe a gelé la fonction de mint en 15 minutes.

Ce qui s'est passé

Mécanisme d'Alchemix : les utilisateurs déposent de l'ETH (ou autre collatéral), empruntent contre celui-ci sous forme de tokens auto-remboursants comme alETH, et au fil du temps les stratégies de rendement du protocole génèrent des retours qui remboursent automatiquement le prêt via une distribution de récompenses « transmuter ».

Le bug n'était ni dans la logique de prêt ni dans l'accumulation de récompenses — les deux fonctionnaient correctement. Le bug était dans le script de déploiement qui créait le vault alETH. Le script créait accidentellement des vaults fantômes additionnels au-delà de celui prévu et les plaçait dans le tableau de vaults sur lequel le contrat Alchemist itérait lors de la distribution des récompenses du transmuter.

Lorsque le contrat calculait quel vault devait recevoir chaque récompense, il utilisait le mauvais index dans le tableau de vaults — dirigeant les fonds du transmuter (qui auraient dû rester dans le pool de récompenses) vers le vault alETH, où ils remboursaient automatiquement les dettes alETH en cours des utilisateurs.

Pour les utilisateurs détenant des positions alETH :

  1. Leurs prêts étaient silencieusement remboursés par des fonds de récompenses mal routés.
  2. Le contrat Alchemist enregistrait leur dette comme acquittée.
  3. Ils pouvaient retirer leur collatéral ETH d'origine sans rien rembourser eux-mêmes.

Total sur la fenêtre affectée : environ 6,5 millions de dollars de bénéfice utilisateur non intentionnel.

Conséquences

  • L'équipe Alchemix a identifié le problème et, 15 minutes plus tard, a exécuté une pause d'urgence sur la fonction de mint d'alETH.
  • Un effort coordonné avec les ingénieurs de Yearn Finance a produit un correctif de contrat et un plan de redéploiement.
  • L'équipe a publié un post-mortem détaillé et a annoncé un plan de récupération financé par les revenus du protocole.
  • De nombreux utilisateurs ayant bénéficié du bug ont volontairement rendu l'aubaine après l'appel public de l'équipe. Une fraction notable ne l'a pas fait.

Pourquoi c'est important

L'incident Alchemix est l'un des cas DeFi rares où la perte a coulé vers les utilisateurs plutôt que depuis eux — un contre-exemple au schéma standard « bug de smart contract = l'attaquant gagne ». La leçon structurelle est la même que celle répétée dans l'histoire DeFi : les scripts de déploiement font partie du protocole, et les bugs dans ceux-ci peuvent être aussi économiquement dommageables que ceux dans les contrats eux-mêmes.

Leçons structurelles spécifiques :

  • Les tableaux de vaults doivent être initialisés avec des assertions explicites sur la longueur et le contenu attendus, le contrat revertant le déploiement si les valeurs réelles ne correspondent pas.
  • Les scripts de vérification post-déploiement doivent énumérer chaque variable d'état et la comparer aux valeurs attendues avant qu'aucune interaction utilisateur ne soit autorisée.
  • Le temps de réponse de 15 minutes est l'histoire à succès intégrée à l'incident : il a fallu à Alchemix ce temps pour identifier, diagnostiquer et mettre en pause le problème — un repère devenu depuis le plancher pour une capacité de réponse sérieuse de protocole DeFi.

Le cadrage « rug inversé » est aussi devenu un mème récurrent dans la communauté sécurité DeFi-Twitter : un rappel utile que les bugs de smart contracts peuvent être économiquement neutres ou même positifs pour les utilisateurs individuels, avec le coût absorbé par les autres parties prenantes du protocole plutôt que par les personnes qui ont d'abord remarqué le bug.

Sources & preuves on-chain

  1. [01]cryptonews.nethttps://cryptonews.net/news/defi/818795/
  2. [02]coindesk.comhttps://www.coindesk.com/tech/2021/06/16/free-money-bug-hits-defi-platform-alchemix
  3. [03]halborn.comhttps://halborn.com/explained-the-alchemix-reverse-rug-pull-june-2021/

Dépôts liés