Reentrada de solo lectura zkSync en EraLend
EraLend en zkSync Era perdió 3,4 M$ por reentrada de solo lectura: el atacante manipuló el precio USDC mid-callback durante una operación del pool SyncSwap.
- Fecha
- Víctima
- EraLend
- Cadena(s)
- Estado
- Fondos robados
El 25 de julio de 2023, el protocolo de préstamo EraLend —el mayor mercado de préstamo en zkSync Era en ese momento— perdió aproximadamente 3,4 millones de dólares mediante una reentrada de solo lectura en su oráculo de precios. El atacante manipuló el precio de USDC mid-callback durante una operación del pool SyncSwap, derrotando las comprobaciones de solvencia del protocolo.
Qué ocurrió
EraLend usaba pools de SyncSwap (el DEX líder de zkSync Era) como fuente de precios para sus mercados de préstamo. El oráculo leía el precio reportado por SyncSwap para los pares correspondientes, para valorar el colateral y disparar liquidaciones.
La vulnerabilidad era el bien documentado patrón de reentrada de solo lectura, la misma clase que afectó a dForce en Arbitrum/Optimism cinco meses antes. Las operaciones de pool de SyncSwap, como las de Curve, realizan una secuencia de mutaciones de estado y llamadas externas. Entre mutaciones, el precio reportado por el pool es temporalmente incorrecto. Un contrato que lea el precio durante esta ventana —incluso vía una función view de "solo lectura" que no muta estado por sí misma— obtiene un valor manipulado sin que se dispare ningún guard de reentrada.
El ataque:
- Inició una operación de pool SyncSwap (eliminación de liquidez o swap) que disparó un callback externo a código controlado por el atacante.
- Desde dentro del callback —mientras el estado del pool SyncSwap estaba a media mutación y su precio reportado era temporalmente incorrecto— llamó a las funciones de préstamo de EraLend.
- El oráculo de EraLend leyó el precio manipulado a media mutación, valorando mal el colateral del atacante.
- Pidió prestado contra la valoración inflada del colateral, extrayendo aproximadamente 3,4 M$ de las reservas de EraLend.
Consecuencias
- EraLend pausó las operaciones de préstamo y advirtió a los usuarios.
- El equipo coordinó con contactos de seguridad del ecosistema zkSync y con SyncSwap sobre la respuesta.
- Los fondos robados fueron bridgeados fuera de zkSync Era y lavados; sin recuperación pública.
- La posición de EraLend como protocolo de préstamo dominante de zkSync sufrió un daño significativo.
Por qué importa
EraLend forma parte del linaje de reentrada de solo lectura, un patrón de vulnerabilidad que ha recurrido cada vez que un protocolo de préstamo integra un oráculo de DEX sin manejar explícitamente la ventana de precio a media mutación:
- Lendf.Me (abr 2020) — reentrada original de Curve.
- dForce (feb 2023) — reentrada de solo lectura de Curve en Arbitrum/Optimism.
- EraLend (jul 2023) — reentrada de solo lectura de SyncSwap en zkSync Era.
- Conic Finance (jul 2023) — reentrada de solo lectura de Curve, el mismo mes.
La lección estructural recurrente: el DEX líder de cada nueva cadena tiene el mismo footgun de reentrada de solo lectura que sus predecesores de Ethereum, y cada nuevo protocolo de préstamo en esa cadena vuelve a aprender la lección a costa de sus usuarios. El patrón defensivo —verificar el estado del lock de reentrada del DEX antes de consumir su precio, o usar una arquitectura de oráculo resistente a manipulación— está bien documentado (Curve y otros publican guías explícitas de integración), pero el conocimiento no se transfiere automáticamente a nuevas cadenas y nuevos equipos.
El incidente de EraLend es un ejemplo representativo del patrón más amplio de 2023-2024: conforme DeFi se expandió a nuevos L2 (zkSync, Linea, Base, Scroll, etc.), cada ecosistema repitió los errores de seguridad que el DeFi de Ethereum ya había pagado —reentrada de solo lectura, manipulación de oráculo, bugs de forks de Compound v2, ataques de donación— porque los equipos y firmas de auditoría de los nuevos ecosistemas tenían menos cicatrices acumuladas. El coste de que cada cadena vuelva a aprender independientemente las mismas lecciones es un impuesto recurrente y cuantificable sobre la expansión multicadena de DeFi.
Fuentes y evidencia 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