Cream Finance - REKT



Inspector rekt ha vuelto otra vez.

$18.8M desaparecidos por un ghostface killer, esta vez de un protocolo DeFi old school.

Cream Finance fue auditado por Trail of Bits (uno de los pocos auditores ausentes en nuestro leaderboard) el 28 enero del 2021.

Sin embargo, incluso la auditoría más fuerte se vuelve irrelevante una vez que cambia el protocolo.

El 10 de febrero del 2021, la propuesta de Cream para añadir el token AMP se hizo efectiva y se abrió la brecha.

Crédito: @peckshield

418,311,571 tokens AMP y 1,308.09 ETH fueron tomados del contrato del token AMP de Cream Finance.

El contrato del token AMP implementa el estándar ERC1820, basado en ERC77, lo que tiene _callPreTransferHooks que permite la reentrada.

La vulnerabilidad dentro del contrato permitió al exploiter anidar una segunda función borrow() dentro de la transfer(), antes de que la borrow() inicial fuera actualizada:

Transacción ejemplo del exploit (una de 17)

Contratos del ataque: A, B y wallet del exploiter.

En el ejemplo de arriba, el hacker:

1: Utiliza contrato A para tomar un flash loan de 500 WETH para utilizar como colateral en Cream, acuñando 24.17k crETH.

2: Toma prestado 19.48M AMP, colateralizado con crETH.

3: Explota el bug de reentrada al insertar una función borrow() adicional dentro de la transferencia de tokens, tomando prestado otros 355 ETH antes de que se actualice la borrow() inicial.

4: Crea contrato B, que se financia con la mitad (9.74M) del AMP prestado por A.

5: Contrato B luego liquida una parte del préstamo de A, recuperando 187 WETH y transfiriéndolos de vuelta al contrato A.

6: Contrato A luego utiliza el ETH prestado vía la reentrada para devolver lo que queda del flash loan, dejando un sobrante de 41 ETH y 9.74 AMP como ganancia para esta transacción.

Un proceso similar fue utilizado en 17 transacciones, acumulando un total de casi 6k ETH.

A la hora de redacción, el ETH robado (actualmente con un valor de poco más de $18M) permanece en la dirección del exploiter: 0xce1f4b4f17224ec6df16eeb1e3e5321c54ff6ede

Cream nunca ha tenido una buena reputación. Quizás por eso muchos creyeron que esta era su segunda o tercera vez rekt.

Aunque estuvo involucrado en el incidente de Alpha Finance, este -de hecho- es el primer ataque directo que afecta a Cream Finance.

Independientemente de su reputación, incluso los protocolos establecidos pueden debilitarse al integrar un token vulnerable.

No obstante, como @Mudit__Gupta señaló;

...parece que [Cream] hubiera estado a salvo si simplemente hubieran añadido protección de reentrada en sus funciones borrow/lend.

¿Puede todo ser tan sencillo?


compartir artículo

REKT sirve como plataforma pública para autores anónimos, nos deslindamos de la responsabilidad por las opiniones y contenidos alojados en REKT.

dona (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

aviso legal:

REKT no es responsable ni culpable de ninguna manera por cualquier Contenido publicado en nuestro Sitio Web o en conexión con nuestros Servicios, sin importar si fueron publicados o causados por Autores ANÓN de nuestro Sitio Web, o por REKT. Aunque determinamos reglas para la conducta y publicaciones de los Autores ANÓN, no controlamos y no somos responsables por cualquier contenido ofensivo, inapropiado, obsceno, ilegal o de cualquier forma objetable, que se pudiera encontrar en nuestro Sitio Web o Servicios. REKT no es responsable por la conducta, en línea o fuera de línea, de cualquier usuario de nuestro Sitio Web o Servicios.