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 № 053Reentrancy

Reentrada AMP en Cream Finance

$18,8M drenados de Cream Finance v1 vía un bug de reentrada en el hook de transferencia ERC-777 del token AMP — el segundo de los tres exploits de 2021.

Fecha
Cadena(s)
Estado
Parcialmente recuperado

El 30 de agosto de 2021, el protocolo de préstamos Cream Finance sufrió el segundo de sus tres grandes exploits de 2021, perdiendo aproximadamente 18,8 millones de dólares2.804,96 ETH y 462.079.976 tokens AMP — por un ataque de reentrada posibilitado por el estándar de token ERC-777 usado por AMP. El atacante devolvió aproximadamente $17,6M de los fondos robados, clasificando el evento como white-hat oportunista.

Qué ocurrió

Cuando Cream listó AMP como activo de colateral soportado, la integración heredó una propiedad sutil de la implementación ERC-777 de AMP: cada transferencia de AMP activa un hook tokensReceived() en el contrato receptor, permitiendo al receptor ejecutar código arbitrario antes de que la contabilidad de la transferencia se finalice.

La función borrow() de Cream seguía el patrón estándar de Compound v2: enviar los tokens prestados al llamador, luego actualizar el saldo de deuda del llamador. El flujo previsto era seguro — hasta que el hook de AMP permitió al prestatario ejecutar código arbitrario en la brecha entre "tokens enviados" y "deuda registrada".

El ataque:

  1. El atacante pidió prestada una pequeña cantidad inicial de AMP de Cream — activando el hook tokensReceived() de AMP en el contrato del atacante.
  2. Desde dentro del hook — antes de que el primer préstamo hubiera sido registrado en la contabilidad de Cream — el atacante llamó a borrow() de nuevo.
  3. El segundo préstamo vio el colateral del atacante como aún no comprometido (sin deuda registrada todavía), y emitió un segundo préstamo contra el mismo colateral.
  4. Repitió la recursión hasta que el atacante drenó el suministro de AMP y ETH del protocolo.

Consecuencias

  • Cream pausó los mercados afectados e inmediatamente trabajó con ingenieros de Yearn Finance para identificar la causa raíz del hook AMP.
  • El atacante — posiblemente nervioso por la identificación — devolvió ~$17,6M de los $18,8M en días, quedándose con una "recompensa" de aproximadamente el 6%.
  • Dos meses después, en octubre de 2021, Cream sufrió un tercer exploit mucho mayor por $130M — una ruta de vulnerabilidad separada, pero en el mismo protocolo que había sido comprometido tres veces en ocho meses.

Por qué importa

El incidente de agosto de 2021 de Cream es uno de los casos canónicos de por qué los hooks de tokens ERC-777 son un peligro de reentrada para cualquier protocolo que maneje saldos de tokens prestados. La respuesta defensiva es doble:

  • Tratar cada llamada externa de token como un potencial punto de re-entrada — aplicar el patrón checks-effects-interactions rigurosamente, no selectivamente.
  • Auditar cada integración de token como si fuera un código nuevo — el comportamiento específico del token (hooks ERC-777, tokens rebasing, tokens con comisión en transferencia, tokens con callback habilitado) puede romper suposiciones de seguridad que se mantienen para ERC-20 planos.

Los tres exploits de Cream de 2021, tomados juntos, también son un estudio de caso de lo que ocurre cuando la cultura de seguridad de un protocolo no puede seguir el ritmo de su velocidad de listing. Añadir nuevos activos de colateral rápidamente es presión competitiva; hacerlo sin análisis de reentrada por activo se paga en pérdidas reales.

Fuentes y evidencia on-chain

  1. [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-cream-finance-hack-august-2021
  2. [02]coindesk.comhttps://www.coindesk.com/business/2021/08/30/defi-protocol-cream-finance-hacked
  3. [03]cryptonews.nethttps://cryptonews.net/news/defi/1616179/

Registros relacionados