Reentrada en Fei / Rari Fuse
Una reentrada en exitMarket() drenó 80 M$ de los pools Fuse de Rari Capital, una función que el equipo olvidó proteger al parchear reentrada el mes anterior.
- Fecha
- Víctima
- Rari Capital / Fei Protocol
- Cadena(s)
- Estado
- Fondos robados
El 30 de abril de 2022, el ecosistema fusionado Fei Protocol + Rari Capital perdió aproximadamente 80 millones de dólares cuando un atacante explotó un bug de reentrada en los pools de préstamo aislados Fuse de Rari. El bug era una clase de vulnerabilidad conocida que Rari había parcheado explícitamente un mes antes, salvo que se habían dejado una función.
Qué ocurrió
Fuse de Rari era un fork de Compound v2 que permitía a los usuarios crear pools de préstamo aislados. El 1 de abril de 2022, Rari lanzó lo que llamó una "Actualización de Seguridad" que abordaba vulnerabilidades de reentrada heredadas de Compound. El parche añadió un bloqueo global de reentrada a la mayoría de funciones mutadoras de estado en los contratos del pool.
El bloqueo protegía las funciones obvias: borrow, mint, redeem, liquidateBorrow, etc. La única función que no protegía era exitMarket(): la llamada que elimina un activo de colateral de la elegibilidad para préstamos de un usuario.
El ataque:
- El atacante entró en un mercado Fuse con un depósito.
- Pidió prestado ETH del mismo mercado.
- Cuando el préstamo pagó ETH al contrato del atacante, se disparó la función fallback del contrato.
- La fallback llamó a
exitMarket()sobre el contrato de préstamo, que no estaba protegido por el bloqueo de reentrada. - La
exitMarket()no protegida recalculó la colateralización del atacante antes de que el ETH prestado se hubiera registrado como deuda pendiente, permitiendo al atacante sacar colateral que debería haber estado bloqueado contra el préstamo. - El atacante se llevó tanto el ETH prestado como el colateral liberado.
Repitiendo el patrón en varios pools Fuse netearon aproximadamente 80 millones de dólares.
Consecuencias
- Fei Protocol pausó todos los préstamos en los pools Fuse.
- El Fei DAO ofreció públicamente al atacante una recompensa de 10 millones de dólares por la devolución de los fondos; sin respuesta.
- La tesorería combinada fue insuficiente para reembolsar totalmente todos los pools afectados. Las consecuencias precipitaron una pelea divisiva de gobernanza, y la fusión Fei + Rari se deshizo efectivamente durante los meses siguientes.
- Los fondos del atacante fueron lavados mediante Tornado Cash.
Por qué importa
Fei/Rari es el caso de manual de por qué la protección parcial de reentrada es peor que ninguna: da una falsa sensación de seguridad que enmascara las rutas no protegidas. Los forks de Compound v2 siguen siendo una categoría de vulnerabilidad fértil: cada fork que envíe cualquier función mutadora de estado sin proteger será eventualmente explotado por esa ruta. La lección recurrente, reforzada en Hundred Finance y Sonne Finance, es que la capa base de Compound v2 tiene footguns conocidos que deben parchearse de forma integral, no selectiva.
Fuentes y evidencia on-chain
- [01]coindesk.comhttps://www.coindesk.com/business/2022/04/30/defi-lender-rari-capitalfei-loses-80m-in-hack
- [02]certik.comhttps://www.certik.com/resources/blog/6LiXVtPQ8q5AQfqOUPnTOS-revisiting-fei-protocol-incident
- [03]decrypt.cohttps://decrypt.co/99103/fei-protocol-offers-10m-bounty-after-80m-rari-capital-exploit