Saltar al contenido
Est. MMXXVIVol. VI · № 273RSS
Blockchain Breaches

Archivo de incidentes de seguridad en criptomonedas — hackeos, exploits, fallos de puentes y rug pulls, documentados con evidencia on-chain.

Expediente № 238Fallo de smart contract

Ataque por donación ERC-4626 en Resupply

$9,8 M drenados de Resupply en menos de 90 minutos cuando un préstamo flash de $4.000 explotó una bóveda wstUSR de 2 horas vía donación ERC-4626.

Fecha
Víctima
Resupply
Cadena(s)
Estado
Fondos robados

El 26 de junio de 2025, el protocolo de préstamos DeFi Resupply — integrado con los ecosistemas Convex y Yearn — fue drenado por aproximadamente $9,8 millones en menos de 90 minutos. El atacante aprovechó un clásico ataque por donación ERC-4626 combinado con una implementación defectuosa de bóveda. La bóveda objetivo había sido desplegada solo 2 horas antes del exploit y tenía un valor insignificante — exactamente las condiciones que requiere el ataque por donación. Un préstamo flash de $4.000 se convirtió en un atraco multimillonario.

Qué ocurrió

Resupply permitía a los usuarios pedir prestada su stablecoin reUSD contra varios activos depositados. El protocolo usaba tokens de bóveda ERC-4626 para representar los depósitos de los usuarios — un patrón estándar donde el precio de participación de la bóveda se calcula como totalAssets / totalSupply.

El ataque por donación ERC-4626 es una clase de vulnerabilidad bien documentada que explota un caso límite crítico:

  • Cuando una bóveda tiene suministro total muy bajo o cero de participaciones, donar tokens directamente al contrato de la bóveda (saltándose la función de depósito) puede inflar masivamente el precio de participación.
  • Un atacante puede entonces depositar una cantidad diminuta, recibir participaciones mínimas debido al precio inflado, y manipular el tipo de cambio a cero mediante división entera — saltándose comprobaciones de solvencia que dependen de cálculos de precio-por-participación.

El ataque:

  1. Apuntó a la bóveda wstUSR — una bóveda Resupply recién desplegada que había estado activa solo 2 horas y tenía esencialmente cero valor.
  2. Tomó un préstamo flash de $4.000 para el capital operativo.
  3. Donó tokens directamente a la bóveda wstUSR, inflando su totalAssets sin mintear nuevas participaciones.
  4. El cálculo de precio-por-participación de la bóveda fue a valores extremos — y mediante errores de división entera en las matemáticas de Solidity, finalmente a cero.
  5. Con el tipo de cambio en cero, las comprobaciones de solvencia de Resupply pasaban cualquier operación de préstamo — el protocolo creía que el colateral del atacante valía infinitamente más que la deuda que se estaba creando.
  6. Pidió prestados millones en reUSD contra esencialmente un wei de colateral, luego intercambió el reUSD por crvUSD y ETH a través de agregadores DEX.

Robo neto: aproximadamente $9,6-9,8 millones. 2.280 ETH fueron puenteados a Tornado Cash en horas del drenaje.

Consecuencias

  • Resupply pausó las operaciones de bóveda afectadas cuando se detectó el exploit.
  • El equipo publicó un post-mortem identificando la bóveda wstUSR recién desplegada como el punto de entrada.
  • Sin recuperación pública — los fondos fueron blanqueados a través de Tornado Cash en el mismo día.

Por qué importa

El incidente de Resupply es uno de los casos más claros de por qué las bóvedas ERC-4626 recién desplegadas son categóricamente peligrosas. La vulnerabilidad del ataque por donación ha sido documentada desde al menos 2021 — OpenZeppelin publicó advertencias explícitas, las firmas de auditoría la incluyen en listas de verificación estándar, y las mitigaciones canónicas (minteo inicial de dead-shares, offset de participaciones virtuales) son bien conocidas.

Las condiciones que hicieron a Resupply vulnerable:

  1. Bóveda desplegada sin depósito inicial protector — el atacante encontró la bóveda en su estado "vacío" donde la manipulación por donación es matemáticamente devastadora.
  2. Sin offset de participaciones virtuales — el patrón de "participaciones virtuales" de Uniswap V4 / Solady que endurece contra ataques por donación no fue implementado.
  3. Sin verificación de invariante en tiempo de despliegue — el script de despliegue del protocolo no sembró cada nueva bóveda con el pequeño depósito dead-share que habría neutralizado el ataque.

La lección estructural es operativamente simple: cada nuevo despliegue de bóveda ERC-4626 debe incluir un depósito inicial protector, idealmente bloqueado permanentemente a una dirección quemada o multi-sig de DAO. La solución es una transacción en el momento del despliegue. Saltársela costó a Resupply $9,8 M.

El patrón se repite a lo largo de la historia DeFi — Hundred Finance, Sonne Finance, Onyx Protocol — y continúa produciendo pérdidas para protocolos que despliegan forks de Compound v2 o implementaciones ERC-4626 sin las mitigaciones bien documentadas. El coste acumulado de saltarse el patrón de depósito inicial es, a estas alturas, bien dentro de los cientos de millones.

Fuentes y evidencia on-chain

  1. [01]nabilech.comhttps://nabilech.com/resupplyfi-rekt-how-a-4k-flash-loan-led-to-a-9-8m-erc-4626-donation-attack/
  2. [02]halborn.comhttps://www.halborn.com/blog/post/explained-the-resupply-hack-june-2025
  3. [03]decrypt.cohttps://decrypt.co/327148/hacker-drained-9-6-million-from-defi-stablecoin-protocol-resupply

Registros relacionados