Spoofing de tick-account Crema Finance
Un faux tick account a contourné la vérification d'owner de Crema et récolté des frais fictifs via la comptabilité CLMM, drainant 9,6 M$ sur Solana.
- Date
- Victime
- Crema Finance
- Chaîne(s)
- Statut
- Partiellement récupéré
Le 2 juillet 2022, le protocole de liquidité concentrée sur Solana Crema Finance a été drainé d'environ 9,6 millions de dollars via une injection de tick account falsifié. Environ 8 M$ ont été rendus au protocole comme règlement white-hat ; l'attaquant a gardé 1,6 M$ comme « prime ».
Ce qui s'est passé
Le CLMM (Concentrated Liquidity Market Maker) de Crema était l'analogue Solana d'Uniswap v3 — les fournisseurs de liquidité déposaient à des ticks de prix spécifiques, et le protocole suivait quels ticks étaient actifs et combien de revenus de frais chacun avait accumulé.
Les programmes Solana vérifient la propriété de chaque compte qui leur est passé — les comptes ont un champ owner, et un programme rejettera tout compte dont l'owner n'est pas ce qu'il attend. La vérification de tick account de Crema vérifiait le champ owner mais ne vérifiait pas que le tick account passé était réellement l'un des ticks légitimes du pool.
L'attaque :
- Création d'un faux tick account détenu par le programme de Crema mais contenant l'état choisi par l'attaquant.
- Écriture de l'adresse d'un tick initialisé légitime dans un champ du faux compte pour contourner les vérifications de bon sens en aval.
- Prise d'un prêt flash de Solend et utilisation pour déposer de la liquidité dans le pool Crema via le chemin référençant le faux tick.
- Fabrication des données d'accumulation de frais dans le faux tick pour réclamer une part bien plus grande des frais du pool que tout LP réel ne pourrait légitimement avoir gagné.
- Retrait des frais fictifs — environ 9,6 M$ en actifs mixtes — et remboursement du prêt flash.
Conséquences
- Crema a mis en pause toutes les opérations de pool et a commencé une négociation on-chain avec l'attaquant.
- Après environ une semaine de négociation, l'attaquant a retourné 8 M$ en échange d'une prime de 45 455 SOL (~1,6 M$).
- Le SDNY américain a plus tard accusé un professionnel de la cybersécurité — Shakeeb Ahmed, alors employé chez une firme tech internationale anonyme — de l'exploit. Il a plaidé coupable en 2023.
Pourquoi c'est important
Crema est l'un de trois incidents DeFi Solana fondateurs mi-2022 (aux côtés de Cashio et Nirvana Finance) qui ont enfoncé l'importance de la validation complète des comptes dans les programmes Solana. L'atténuation standard — chaque compte passé à un programme doit être vérifié à la fois pour owner et identité exacte (souvent via dérivation PDA) — était déjà documentée dans les propres guides développeur de Solana, mais le coût de la sauter a été payé, cas après cas, en fonds clients réels.
Le règlement Crema est aussi un exemple net de l'issue white-hat-par-pression : l'attaquant détenait les fonds publiquement, on-chain, dans des wallets identifiables ; l'équipe a négocié avec une visibilité complète ; le règlement éventuel a acheté la continuité du protocole à un coût de 1,6 M$. La même issue ne se produit que quand l'identité de l'attaquant est soit non identifiable, soit les fonds ont déjà été mixés au-delà de la traçabilité — habituellement l'un des deux est vrai, mais pas toujours.
Sources & preuves on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-crema-finance-hack-july-2022
- [02]coindesk.comhttps://www.coindesk.com/tech/2022/07/07/crema-finance-attacker-returns-almost-8m-keeps-17m-bounty
- [03]ackee.xyzhttps://ackee.xyz/blog/2022-solana-hacks-explained-crema-finance/