Contournement de slippage Vee Finance
Vee Finance sur Avalanche a perdu 35 M$ une semaine après le lancement : une manipulation Pangolin a contourné le slippage via un bug de décimales pré-signalé.
- Date
- Victime
- Vee Finance
- Chaîne(s)
- Statut
- Fonds dérobés
Le 21 septembre 2021, le protocole de prêt Avalanche Vee Finance a perdu environ 35 millions de dollars — 8 804,7 ETH et 213,93 BTC — juste une semaine après le lancement mainnet. L'exploit a enchaîné une manipulation d'oracle avec un bug de décimales dans le calcul de vérification de slippage, contournant complètement les protections qui auraient dû l'attraper. SlowMist avait signalé la conception à oracle unique dans un audit pré-lancement. L'équipe n'a pas agi sur l'avertissement.
Ce qui s'est passé
Vee Finance permettait aux utilisateurs d'ouvrir des positions de trading à effet de levier, avec les swaps sous-jacents acheminés via Pangolin (le plus grand DEX d'Avalanche à l'époque). Le mécanisme de sécurité du protocole était une vérification de slippage qui comparait le prix d'exécution attendu (depuis les réserves du pool Pangolin) au prix réel rapporté par l'oracle de Vee.
Deux problèmes se sont aggravés :
- L'oracle était à source unique depuis les réserves du pool Pangolin — le même pool que l'attaquant pouvait bouger avec un swap. Tout swap assez large pour bouger le prix Pangolin bougerait aussi le prix rapporté par l'oracle.
- La vérification de slippage avait un décalage de décimales — le prix attendu et le prix rapporté par l'oracle étaient comparés sans normaliser correctement leurs échelles décimales. Résultat : la vérification pouvait être contournée par une manipulation de prix qui n'avait même pas besoin d'être précise.
L'attaque :
- A acheminé de gros trades via Pangolin pour pousser les prix sur les paires de trading pertinentes.
- A ouvert une position à effet de levier sur Vee Finance, utilisant le prix manipulé comme entrée.
- La vérification de slippage de Vee, cassée par le bug de décimales, n'a pas reverté — et le protocole a exécuté le swap à un prix bien pire que sa solvabilité ne le supposait.
- A fermé la position au prix post-manipulation, partant avec le profit.
Répété à travers plusieurs paires de trading, drainage total : ~35 M$.
Conséquences
- Vee Finance a mis en pause les opérations et annoncé une enquête.
- L'équipe a publié un post-mortem partiel mais n'a pas remboursé les pertes en intégralité ; le protocole a effectivement liquidé sa position parmi les protocoles DeFi d'Avalanche.
- Les fonds volés ont été bridgés et blanchis ; aucune récupération publique.
Pourquoi c'est important
Vee Finance est l'un des exemples les plus nets du coût d'ignorer une recommandation d'audit pré-lancement. SlowMist avait spécifiquement signalé la dépendance à oracle unique avant le mainnet. L'équipe a quand même lancé, vraisemblablement parce que migrer vers une architecture d'oracle multi-source aurait retardé le lancement et la fenêtre du bull-run BTC/AVAX se fermait.
La leçon structurelle plus profonde est récurrente : pour les protocoles de prêt et de trading à effet de levier, l'oracle est la frontière de confiance. Un oracle à source unique, peu importe combien le DEX dont il lit est respecté, est à un gros swap d'être manipulé. La réponse défensive — agrégation multi-source avec Chainlink, oracles pondérés dans le temps, gardes de déviation, planchers de liquidité — était déjà bien connue et bien documentée en 2021. Vee a payé 35 M$ pour le choix de ne pas l'implémenter.
Sources & preuves on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-vee-finance-hack-september-2021
- [02]decrypt.cohttps://decrypt.co/81400/avalanche-defi-platform-vee-finance-suffers-35m-hack
- [03]slowmist.medium.comhttps://slowmist.medium.com/the-main-cause-of-vee-finance-attack-52fc8e5fb13d