Euler Finance sufrió un ataque de flash loan, con pérdidas de hasta 197 millones de dólares
El 13 de marzo de 2023, el proyecto Euler Finance sufrió un ataque masivo de Flash Loans debido a una vulnerabilidad en su contrato inteligente. Los atacantes aprovecharon la falta de una verificación de liquidez en la función donateToReserves de Etoken, obteniendo enormes beneficios a través de múltiples llamadas a operaciones de diferentes monedas. Las pérdidas totales causadas por este ataque alcanzaron los 197 millones de dólares, involucrando 6 tipos diferentes de tokens.
Análisis del proceso de ataque
Los pasos de operación del atacante son los siguientes:
Pedir prestado 30 millones de DAI a través de un flash loan de una plataforma de préstamos.
Desplegar dos contratos: uno para préstamos y otro para liquidaciones.
Pone 20 millones de DAI en el contrato del Protocolo Euler para obtener 195,000 eDAI.
Utilizando la función de préstamo con apalancamiento de 10 veces del Protocolo Euler, presté 1,956,000 eDAI y 2,000,000 dDAI.
Usar los 10 millones de DAI restantes para pagar parte de la deuda y quemar la cantidad correspondiente de dDAI.
Volver a prestar 1,956,000 eDAI y 2,000,000 dDAI.
Llamar a la función donateToReserves, donar 10 veces el monto reembolsado (1 millón de eDAI).
Disparar la función de liquidación, obtener 3.1 millones de dDAI y 2.5 millones de eDAI.
Extraer 389,000 DAI, devolver 300,000 Flash Loans, y obtener finalmente una ganancia de 88,700 DAI.
Análisis de vulnerabilidades
La clave para el éxito del ataque fue la falta de una verificación de liquidez necesaria en la función donateToReserves de Euler Finance. A diferencia de otras funciones clave (como mint), la función donateToReserves no ejecuta el paso de checkLiquidity. Esta omisión permitió a los usuarios manipular el estado de su cuenta para cumplir con las condiciones de liquidación y luego beneficiarse de la liquidación.
En condiciones normales, la función checkLiquidity llamará al módulo RiskManager, asegurando que el Etoken del usuario siempre sea mayor que el Dtoken, para mantener el estado de salud del sistema. Sin embargo, debido a que la función donateToReserves carece de esta verificación clave, los atacantes pueden eludir los mecanismos de seguridad del sistema.
Consejos de seguridad
Para este tipo de ataque, proponemos las siguientes recomendaciones de seguridad:
Los contratos inteligentes deben someterse a una auditoría de seguridad completa antes de su lanzamiento.
Los proyectos de préstamos deben prestar especial atención a las etapas clave como el reembolso de fondos, la detección de liquidez y la liquidación de deudas.
Asegúrate de que todas las funciones que puedan afectar el estado de los activos de los usuarios incluyan las verificaciones de seguridad necesarias.
Realizar revisiones de código periódicamente para asegurar que las nuevas funciones no introduzcan vulnerabilidades potenciales.
Establecer un mecanismo de respuesta de emergencia para poder reaccionar rápidamente en caso de un incidente de seguridad.
Este incidente destaca una vez más la importancia de la seguridad de los contratos inteligentes. Los equipos de proyecto deben siempre priorizar la seguridad, protegiendo los activos de los usuarios a través de prácticas de seguridad continuas y auditorías.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
12 me gusta
Recompensa
12
7
Republicar
Compartir
Comentar
0/400
TheMemefather
· 08-02 02:56
El contrato ha tenido otro accidente.
Ver originalesResponder0
MetaEggplant
· 07-30 18:24
Otro lugar de robo de monedas por vulnerabilidad
Ver originalesResponder0
RugPullProphet
· 07-30 18:22
Otra vez la fiesta del Rug Pull.
Ver originalesResponder0
LiquidationWatcher
· 07-30 18:22
Otra muerte por un vacío de seguridad en la inteligencia.
Euler Finance sufrió un ataque de flash loan de 197 millones de dólares, una vulnerabilidad en los contratos inteligentes provocó enormes pérdidas.
Euler Finance sufrió un ataque de flash loan, con pérdidas de hasta 197 millones de dólares
El 13 de marzo de 2023, el proyecto Euler Finance sufrió un ataque masivo de Flash Loans debido a una vulnerabilidad en su contrato inteligente. Los atacantes aprovecharon la falta de una verificación de liquidez en la función donateToReserves de Etoken, obteniendo enormes beneficios a través de múltiples llamadas a operaciones de diferentes monedas. Las pérdidas totales causadas por este ataque alcanzaron los 197 millones de dólares, involucrando 6 tipos diferentes de tokens.
Análisis del proceso de ataque
Los pasos de operación del atacante son los siguientes:
Análisis de vulnerabilidades
La clave para el éxito del ataque fue la falta de una verificación de liquidez necesaria en la función donateToReserves de Euler Finance. A diferencia de otras funciones clave (como mint), la función donateToReserves no ejecuta el paso de checkLiquidity. Esta omisión permitió a los usuarios manipular el estado de su cuenta para cumplir con las condiciones de liquidación y luego beneficiarse de la liquidación.
En condiciones normales, la función checkLiquidity llamará al módulo RiskManager, asegurando que el Etoken del usuario siempre sea mayor que el Dtoken, para mantener el estado de salud del sistema. Sin embargo, debido a que la función donateToReserves carece de esta verificación clave, los atacantes pueden eludir los mecanismos de seguridad del sistema.
Consejos de seguridad
Para este tipo de ataque, proponemos las siguientes recomendaciones de seguridad:
Este incidente destaca una vez más la importancia de la seguridad de los contratos inteligentes. Los equipos de proyecto deben siempre priorizar la seguridad, protegiendo los activos de los usuarios a través de prácticas de seguridad continuas y auditorías.