Réentrance en lecture seule Sturdy Finance
800 K$ drainés de Sturdy Finance via une réentrance lecture-seule Balancer qui a mal valorisé la collatéral LP B-stETH-STABLE. Fonds rendus après négociation.
- Date
- Victime
- Sturdy Finance
- Chaîne(s)
- Statut
- Récupéré
Le 12 juin 2023, le protocole de prêt Sturdy Finance a perdu environ 800 000 $ via une réentrance en lecture seule Balancer qui a mal valorisé sa collatéral de jeton LP B-stETH-STABLE. L'attaquant a emprunté contre une valorisation de collatéral gonflée. Après négociation — incluant une offre de prime de 100 K$ — les fonds ont finalement été retournés.
Ce qui s'est passé
Sturdy Finance était un protocole de prêt qui acceptait des jetons LP à rendement comme collatéral, y compris le jeton de pool B-stETH-STABLE de Balancer. Sturdy valorisait cette collatéral en utilisant le taux rapporté du pool Balancer.
L'exploit utilisait le pattern de réentrance en lecture seule — le même bug structurel que dForce, EraLend et l'incident propre de Balancer en août 2023 :
- L'attaquant a initié une opération de pool Balancer (action de liquidité) qui déclenchait un callback.
- Durant le callback — pendant que le prix BPT rapporté du pool Balancer était temporairement incorrect (en mi-mutation) — l'attaquant a interagi avec le marché de prêt de Sturdy.
- La logique de valorisation de collatéral de Sturdy a lu le prix BPT manipulé en mi-mutation, valorisant la collatéral B-stETH-STABLE de l'attaquant bien au-dessus de sa valeur réelle.
- L'attaquant a emprunté les réserves disponibles de Sturdy contre la collatéral gonflée.
- Total extrait : environ 800 K$.
Conséquences
- Sturdy a mis en pause tous les marchés pour prévenir d'autres pertes.
- L'équipe a offert à l'attaquant une prime de 100 000 $ pour le retour des fonds restants.
- Après négociation, l'attaquant a retourné les fonds, classant l'incident comme une résolution white-hat (payée).
- Sturdy a redessiné sa valorisation de collatéral pour utiliser des lectures d'oracle sûres face à la réentrance et a relancé plus tard une v2 re-architecturée.
Pourquoi c'est important
Sturdy Finance est l'un des quatre incidents de réentrance en lecture seule de 2023 — aux côtés de dForce (févr.), EraLend (juil.) et Balancer (août) — qui font collectivement de 2023 l'année où le pattern de réentrance en lecture seule a atteint la large conscience DeFi qu'il aurait dû avoir des années plus tôt.
La leçon structurelle est constante : tout protocole qui lit l'état interne d'un pool Curve ou Balancer (prix virtuel, taux BPT) pour valoriser une collatéral doit vérifier le statut du verrou de réentrance du pool avant de consommer la valeur, car le prix rapporté du pool est temporairement faux durant ses propres mutations d'état. Curve et Balancer ont tous deux publié des consignes explicites d'intégration à ce sujet ; la récurrence reflète combien de protocoles de prêt ont intégré des lectures de taux de pool écrites avant, ou sans connaissance de, ces consignes.
La récupération complète via négociation fait aussi de Sturdy un cas représentatif du pattern de résolution de plus en plus dominant pour les exploits sous 10 M$ en 2023+ : l'attaquant, face à une amélioration de la forensique on-chain et à une offre de prime crédible, trouve que rendre les fonds est le choix rationnel. La logique économique — une prime garantie versus les produits incertains, lents et de plus en plus traçables du blanchiment — a fait de « exploit, négocier, retour contre prime » un sous-genre reconnaissable, et le 800 K$ / retour à 100 % de Sturdy en est une instance nette.
Sources & preuves on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-sturdy-finance-hack-june-2023
- [02]medium.comhttps://medium.com/neptune-mutual/understanding-sturdy-finance-exploit-ee365fab987a
- [03]rekt.newshttps://rekt.news/sturdy-rekt