Attaque par donation Sonne Finance
Sonne Finance a perdu 20 M$ sur Optimism via une 'donation attack', exploit connu des forks Compound v2 visant l'écart entre déploiement et amorçage.
- Date
- Victime
- Sonne Finance
- Chaîne(s)
- Statut
- Fonds dérobés
Le 14 mai 2024, le protocole de prêt basé sur Optimism Sonne Finance a perdu environ 20 millions de dollars à cause d'une « donation attack » classique — une classe de vulnérabilité connue dans les forks Compound v2 qui a totalisé plus de 50 M$ de pertes cumulées sur une demi-douzaine de protocoles.
Ce qui s'est passé
Le flux de déploiement de marché de Compound v2 comporte deux étapes :
- Déployer un nouveau contrat de marché (par ex.
cVELOpour la collatéral VELO). - Amorcer le marché avec un dépôt initial qui établit le taux de change entre le jeton sous-jacent et le cToken.
Dans un lot de déploiement en une seule transaction, c'est sûr. Scindé en transactions séparées dans un environnement sans permission, c'est exploitable.
Le processus d'inscription de marché de Sonne scindait le déploiement en plusieurs transactions pour s'adapter au flux de gouvernance. Entre les deux étapes :
- L'attaquant a emprunté en flash 35,5M VELO.
- Il a transféré du VELO directement au contrat soVELO vide (une « donation » — pas de mint, juste un transfert brut de jetons).
- La
totalCashdu contrat soVELO a augmenté ; sontotalSupplyde cTokens est resté à zéro. - Le premier déposant légitime — ou l'attaquant lui-même — pouvait alors déposer un seul soVELO et être crédité de tout le solde
totalCash, à cause du calcul de taux de change cassé dans la fonctionexchangeRateStoreddu fork Compound v2 sous des conditions où l'offre est non nulle mais les dépôts totaux sont dérivés de zéro.
En répétant la manœuvre sur plusieurs nouveaux marchés, l'attaquant a drainé ~20 M$ en dépôts avant que l'équipe de Sonne ne rattrape.
Conséquences
- L'équipe de Sonne a détecté l'exploit environ 25 minutes après la première transaction d'attaque.
- Ils ont mis en pause les marchés affectés et offert une prime white-hat de 10 %. L'attaquant a refusé et blanchi via Tornado Cash.
- Sonne Finance a finalement liquidé les opérations de prêt sur Optimism.
Pourquoi c'est important
La donation attack sur les forks Compound v2 a été documentée et patchée dans le dépôt canonique Compound depuis des années. Chaque fork livré sans le lot de déploiement de marché intégré — y compris Hundred Finance (deux fois), Midas Capital, Onyx Protocol et d'autres — a été ou sera exploité par le même pattern.
C'est l'illustration la plus nette de pourquoi forker une base de code sensible à la sécurité n'équivaut pas à hériter de sa sécurité : les forks doivent suivre les patches de sécurité amont et leurs hypothèses sur comment déployer en sécurité. Le coût d'omettre cette étape est bien documenté en dollars.
Sources & preuves on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-sonne-finance-hack-may-2024
- [02]certik.comhttps://www.certik.com/resources/blog/sonne-finance-incident-analysis
- [03]medium.comhttps://medium.com/@SonneFinance/post-mortem-sonne-finance-exploit-12f3daa82b06