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 № 022Attaque par flash loan

Réentrée Alpha Homora / Iron Bank

Un contrat « spell » a exploité un arrondi de parts d'emprunt pour accumuler zéro part contre une dette cySUSD, drainant 37,5 M$ d'Alpha Homora / Iron Bank.

Date
Chaîne(s)
Statut
Fonds dérobés

Le 13 février 2021, le protocole de rendement à effet de levier Alpha Homora v2 a été exploité pour environ 37,5 millions de dollars via un contrat « spell » personnalisé qui a abusé du prêt Iron Bank sur Cream Finance. L'attaquant a utilisé des prêts flash pour fabriquer une situation où ses parts d'emprunt s'arrondissaient à zéro tandis que sa dette réelle s'accumulait — lui permettant de partir avec le cySUSD emprunté.

Ce qui s'est passé

Alpha Homora v2 utilisait une primitive appelée « spell » — un contrat appelable qui définit comment une position à effet de levier est ouverte. Le protocole permettait aux utilisateurs de fournir leurs propres contrats spell, faisant confiance au spell pour respecter les invariants comptables d'Alpha Homora.

L'attaquant a construit un spell malveillant qui exécutait une séquence précise d'emprunts contre le marché sUSD d'Iron Bank :

  1. Emprunt de N minisUSD auprès d'Iron Bank via Alpha Homora.
  2. Le protocole calculait parts d'emprunt = N / (dette_totale + N) arrondies vers le bas. Pour le premier petit emprunt, le résultat était non nul. Mais en doublant la dette à chaque itération et en empruntant un de moins que le nouveau total, l'attaquant a fabriqué une séquence où le calcul de parts du prochain emprunt s'arrondissait à zéro.
  3. L'emprunt se poursuivait — ajoutant de la dette réelle — mais aucune part d'emprunt n'était ajoutée à la position de l'attaquant. La comptabilité d'Alpha Homora traitait l'attaquant comme ayant zéro dette en cours.

L'attaquant a répété cette manœuvre avec du capital emprunté en flash auprès d'Aave, accumulé des millions en emprunts à zéro part, et est parti avec le cySUSD.

Conséquences

  • L'équipe Alpha Finance a mis le protocole en pause et corrigé le comportement d'arrondi.
  • Le marché Iron Bank a aussi été mis en pause ; Cream Finance a supporté une partie de la perte en tant que prêteur de référence d'Iron Bank.
  • Alpha et Cream ont tous deux mis en œuvre des plans d'indemnisation financés via une émission de tokens ultérieure et les revenus du protocole.
  • Un suspect principal a été identifié par Alpha mais aucune poursuite publique n'a suivi.

Pourquoi c'est important

L'incident d'Alpha Homora est l'un des plus anciens exploits à grande échelle de direction d'arrondi en DeFi. Chaque calcul comptable dans un smart contract fait un choix d'arrondi quand la division entière produit un résultat non entier. Arrondir dans la mauvaise direction au mauvais moment peut produire exactement ce schéma — une position dont l'état interne brise les invariants de solvabilité du protocole.

La leçon structurelle — que la direction d'arrondi doit être choisie pour favoriser le protocole, pas l'utilisateur, sur chaque opération mathématique mutant l'état — a été ré-apprise plusieurs fois depuis chez Hundred Finance, zkLend et Cetus. C'est l'une des classes de bugs DeFi les plus subtiles parce que le code semble correct isolément ; le problème n'émerge qu'avec des séquences d'entrées spécifiques qu'un attaquant construit.

Sources & preuves on-chain

  1. [01]investing.comhttps://www.investing.com/news/cryptocurrency-news/alpha-homora-loses-37-million-following-iron-bank-exploit-2418512
  2. [02]halborn.comhttps://www.halborn.com/blog/post/explained-the-alpha-homora-defi-hack-feb-2021
  3. [03]cryptobriefing.comhttps://cryptobriefing.com/alpha-finance-suffers-37-5-million-loss-major-attack/

Dépôts liés