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

Prêt flash de Harvest Finance

Trente boucles de manipulation du Curve YPool financées par un prêt flash de 50 M$ USDC ont extrait 24 M$ de Harvest Finance ; bank run de 570 M$.

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

Le 26 octobre 2020, un attaquant a drainé environ 24 millions de dollars de Harvest Finance en exécutant 30 itérations d'une boucle de manipulation de prix Curve-YPool. L'exploit a aussi déclenché un bank run de 570 M$ alors que les déposants se précipitaient pour retirer avant que le protocole ne soit complètement compromis — l'un des premiers événements de « DeFi run » enregistrés.

Ce qui s'est passé

Harvest Finance était un agrégateur de rendement. Ses vaults fUSDC et fUSDT déposaient les fonds utilisateurs dans le Curve YPool pour générer du rendement, et Harvest tarifait ses tokens f en utilisant le taux d'échange spot à l'intérieur du YPool au moment du dépôt et du retrait.

L'attaquant a réalisé que ce pricing read-time pouvait être manipulé par quiconque pouvait bouger les soldes internes du YPool dans la même transaction. Avec un prêt flash de 50 M$ USDC d'Uniswap, ils ont :

  1. Swappé USDC → USDT dans YPool, poussant fortement à la hausse le prix effectif de l'USDT.
  2. Déposé de l'USDC dans le vault de Harvest — Harvest a utilisé le prix YPool manipulé pour minter fUSDC, créditant l'attaquant de plus de fUSDC que la vraie valeur du dépôt.
  3. Inversé la manipulation YPool en re-swappant USDT vers USDC.
  4. Retiré les fUSDC pour plus d'USDC qu'ils n'avaient déposé à l'origine, empochant environ 600 000 $ par cycle.
  5. Répété 17 fois sur le vault USDC et 13 fois sur le vault USDT, puis quittés.

Profit total : 24 M$. L'attaquant a volontairement restitué 2,4 M$ au protocole après coup — les fonds ont ensuite été balayés via Tornado Cash et convertis en BTC.

Conséquences

  • La nouvelle de l'exploit a déclenché le bank run de 570 M$ : les déposants paniqués ont retiré près des deux tiers de la TVL de Harvest en quelques heures, bien plus que la perte réelle.
  • Harvest a caractérisé l'incident comme une « erreur d'ingénierie » plutôt qu'un véritable hack — bien que la plupart des observateurs aient vu ce cadrage comme du déni.
  • Harvest a patché la logique de pricing et remboursé les utilisateurs affectés depuis les revenus du protocole au cours des mois suivants.

Pourquoi c'est important

Harvest fait partie des premiers incidents canoniques de l'ère des prêts flash DeFi. Il a démontré :

  • Lire les prix depuis un pool manipulable dans la même transaction n'est pas sûr, point final — toute la classe de patterns « utiliser le ratio spot actuel à l'intérieur de l'AMM que vous venez de toucher » est exploitable.
  • Les bank runs DeFi sont réels : une fois que la confiance dans la solvabilité d'un protocole est ébranlée, les déposants sortiront plus vite que n'importe quelle équipe ne peut communiquer, et la perte secondaire pour le protocole peut éclipser la perte primaire.

Les oracles pondérés dans le temps et les flux de prix découplés sont la réponse toujours actuelle ; l'incident de Harvest est l'une des raisons de leur existence.

Sources & preuves on-chain

  1. [01]slowmist.medium.comhttps://slowmist.medium.com/slow-mist-analysis-of-harvest-finances-hacked-event-63450b49e6a5
  2. [02]coindesk.comhttps://www.coindesk.com/tech/2020/10/26/harvest-finance-24m-attack-triggers-570m-bank-run-in-latest-defi-exploit
  3. [03]decrypt.cohttps://decrypt.co/46445/engineering-error-34-million-defi-hack-harvest-finance

Dépôts liés