Réentrance en lecture seule zkSync d'EraLend
EraLend sur zkSync Era a perdu 3,4 M$ via une réentrance en lecture seule : l'attaquant a manipulé le prix oracle USDC pendant un callback SyncSwap.
- Date
- Victime
- EraLend
- Chaîne(s)
- Statut
- Fonds dérobés
Le 25 juillet 2023, le protocole de prêt EraLend — le plus grand marché de prêt sur zkSync Era à l'époque — a perdu environ 3,4 millions de dollars via une réentrance en lecture seule dans son oracle de prix. L'attaquant a manipulé le prix USDC en plein callback pendant une opération de pool SyncSwap, défaisant les vérifications de solvabilité du protocole.
Ce qui s'est passé
EraLend utilisait les pools SyncSwap (le principal DEX de zkSync Era) comme source de prix pour ses marchés de prêt. L'oracle lisait le prix rapporté par SyncSwap pour les paires pertinentes afin de valoriser le collatéral et déclencher les liquidations.
La vulnérabilité était le pattern bien documenté de réentrance en lecture seule — la même classe qui avait frappé dForce sur Arbitrum/Optimism cinq mois plus tôt. Les opérations de pool SyncSwap, comme celles de Curve, effectuent une séquence de mutations d'état et d'appels externes. Entre les mutations, le prix rapporté par le pool est temporairement incorrect. Un contrat qui lit le prix pendant cette fenêtre — même via une fonction view « lecture seule » qui elle-même ne mute pas l'état — obtient une valeur manipulée sans qu'aucune garde de réentrance ne se déclenche.
L'attaque :
- A initié une opération de pool SyncSwap (retrait de liquidité ou swap) qui déclenchait un callback externe vers du code contrôlé par l'attaquant.
- Depuis l'intérieur du callback — pendant que l'état du pool SyncSwap était en pleine mutation et que son prix rapporté était temporairement faux — a appelé les fonctions d'emprunt d'EraLend.
- L'oracle d'EraLend a lu le prix mid-mutation manipulé, mal-évaluant le collatéral de l'attaquant.
- A emprunté contre la valorisation gonflée du collatéral, extrayant environ 3,4 M$ des réserves d'EraLend.
Conséquences
- EraLend a suspendu les opérations d'emprunt et averti les utilisateurs.
- L'équipe a coordonné avec les contacts de sécurité de l'écosystème zkSync et SyncSwap sur la réponse.
- Les fonds volés ont été bridgés hors de zkSync Era et blanchis ; aucune récupération publique.
- La position d'EraLend comme protocole de prêt dominant de zkSync a été significativement endommagée.
Pourquoi c'est important
EraLend fait partie de la lignée de la réentrance en lecture seule — un pattern de vulnérabilité qui s'est répété à chaque fois qu'un protocole de prêt intègre un oracle DEX sans gérer explicitement la fenêtre de prix mid-mutation :
- Lendf.Me (avr. 2020) — réentrance Curve originale.
- dForce (févr. 2023) — réentrance en lecture seule Curve sur Arbitrum/Optimism.
- EraLend (juil. 2023) — réentrance en lecture seule SyncSwap sur zkSync Era.
- Conic Finance (juil. 2023) — réentrance en lecture seule Curve, même mois.
La leçon structurelle récurrente : le DEX leader de chaque nouvelle chaîne a le même footgun de réentrance en lecture seule que ses prédécesseurs Ethereum, et chaque nouveau protocole de prêt sur cette chaîne réapprend la leçon aux dépens de ses utilisateurs. Le pattern défensif — vérifier l'état du verrou de réentrance du DEX avant de consommer son prix, ou utiliser entièrement une architecture d'oracle résistante à la manipulation — est bien documenté (Curve et d'autres publient des conseils d'intégration explicites), mais la connaissance ne se transfère pas automatiquement aux nouvelles chaînes et nouvelles équipes.
L'incident EraLend est un exemple représentatif du pattern plus large de 2023-2024 : à mesure que la DeFi s'est étendue à de nouveaux L2 (zkSync, Linea, Base, Scroll, etc.), chaque écosystème a répété les erreurs de sécurité que la DeFi Ethereum avait déjà payées — réentrance en lecture seule, manipulation d'oracle, bugs de fork Compound v2, attaques par donation — parce que les équipes et cabinets d'audit des nouveaux écosystèmes avaient moins de tissu cicatriciel accumulé. Le coût de chaque chaîne réapprenant indépendamment les mêmes leçons est une taxe récurrente et quantifiable sur l'expansion multi-chaînes de la DeFi.
Sources & preuves on-chain
- [01]halborn.comhttps://halborn.com/explained-the-eralend-hack-july-2023/
- [02]dlnews.comhttps://www.dlnews.com/articles/defi/zksync-lending-protocol-eralend-suffers-malicious-exploit/
- [03]certik.comhttps://www.certik.com/resources/blog/4NPEuNEiaUUcm6S3gdKKLP-eralend-incident-analysis