Fei Rari - REKT 2



Fei Rari - Rekt.

Aproximadamente entre las 9:00 y las 9:35 AM UTC del 30 de abril, se vaciaron siete pools de Rari's Fuse por un total de ~$80M.

A pesar de afirmar que "ninguno de los pool de Arbitrum es vulnerable", el ataque continuó hoy en Arbitrum, aunque las pérdidas (~100 ETH) fueron mínimas en comparación.

Esta no es la primera vez que Rari es atacado - esperemos que los hackers no hagan un hat trick.

Créditos: Hacxyk, Certik

Rari utiliza un fork de Compound, que no sigue el patrón check-effect-interaction y ha dado lugar a una serie de incidentes de re-entrancy: CREAM , Hundred , Voltage/Ola.

Sin embargo, en este caso, el patrón de re-entrancy es a través de CEther, que usa call.value para enviar ETH. En el caso de que el receptor sea un contrato, call.value puede realizar otra llamada de la que se puede abusar.

Esta vulnerabilidad fue reportada a principios de marzo y mitigada mediante la actualización de los contratos de CToken y Comptroller. Sin embargo, las nuevas protecciones de re-entrancy no cubrían la función exitMarket dentro del contrato Comptroller.

exitMarket reasigna un activo depositado como si ya no fuera un colateral, que luego se puede retirar, siempre y cuando no haya un préstamo contra los fondos. Dado que los checks se realizan después de la transferencia (debido a que el código Compound no sigue el patrón check-effect-interaction), la transacción no registra el monto prestado como deuda antes de que se retire el colateral.

Mediante el uso de flash loans para pedir prestado ETH, el atacante pudo volver a reingresar a través de call.value, llamando a exitMarket para retirar el flash loaned colateral y al mismo tiempo conservar el ETH prestado.

Paso a paso usando el ejemplo tx 0xab4860…

1. El atacante pidio un flash loan de 150,000,000 USDC y 50,000 WETH

2. Depositó 150,000,000 USDC como colateral en el contrato fUSDC-127, que es un fork vulnerable del protocolo Compound.

3. Con el colateral depositado, el atacante tomó prestados 1977 ETH a través de la función "borrow()".

4. Sin embargo, la función "borrow()" no sigue el patrón check-effect-interaction. En concreto, transfiere ETH al contrato del atacante antes de actualizar los registros de préstamo reales del atacante.

5. Por lo tanto, con el registro de préstamo del atacante no actualizado, el atacante realizó una llamada de re-entrancy a "exitmarket()" en la función fallback, que le permite al atacante retirar toda su colateral (150M USDC)

6. El atacante repitió los pasos 1~5 en otros múltiples tokens.

7. Finalmente, el atacante pagó el flash loan y transfirió el resto a su dirección como profit, y envió algunos de los fondos a Tornado Cash.

Pools de Fuse afectados: 8, 18, 27, 127, 144, 146, 156

Dirección del atacante (incluidas todas las txs del exploit): 0x616275…

Contratos de ataque: 0xE39f3C…, 0x32075b…

Ataque Arbitrum tx: 0x3212d0…

Fondos totales perdidos:

6,037.8139071514 ETH

20.251.603,11559831 FEI

14.278.990,684390573 DAI

1,948,952.1788665l LUSD

10,055,556.328173 USDC

132.959,9008 USDT

31,615.8714 RAI

13,101,364.94 FRAX

2,765,891 UST

Valor total estimado: $79,749,026

Después del ataque, el hacker comenzó a depositar las ganancias en Tornado Cash, sin embargo, se detuvo después de mover solo 5400 ETH (~ $15M).

Con los $62,7M restantes todavía en la wallet, ¿está considerando el hacker la oferta de un bounty para devolver los fondos?

Tribe DAO parece tener esperanzas, ya que enviaron el siguiente mensaje a través de etherscan.

Nos dimos cuenta de que puede estar considerando la oferta de $10M sin preguntas. Si desea aceptarla, por favor deposite los fondos restantes en Tribe DAO Timelock: 0xd51dbA7a94e1adEa403553A8235C302cEbF41a3c

Todos los forks de Compound deberían aprovechar esta oportunidad para verificar su código en busca de vulnerabilidades similares.

Como señaló 0x_b1 :

Este exploit se solucionó en el código Compound hace algún tiempo, pero los desarrolladores lo cambiaron a su forma anterior en este commit

Esperemos que el usuario que le preguntó a Rari si los pools de Arbitrum eran seguros no se vea muy afectado, ya que Rari le aseguró su seguridad, solo para ser víctima del mismo exploit hoy.

Un check rápido podría haber evitado el daño doble.

Ahora Rari comparte el puesto #10 en el leaderboard.


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.