Jarvis Network sufrió un ataque de reentrada por Flash Loans, con una pérdida de 66.3 mil MATIC

Análisis del ataque de reentrada de Flash Loans en Jarvis Network

Recientemente, un proyecto llamado Jarvis_Network sufrió un ataque de reentrada de Flash Loans, lo que resultó en la pérdida de aproximadamente 663,000 tokens MATIC. Este incidente ocurrió en la noche del 15 de enero de 2023.

Análisis del evento de ataque por reentrada de Flash Loans de Jarvis Network

A través de un análisis profundo de la pila de llamadas de transacciones, descubrimos que el atacante aprovechó una vulnerabilidad de reingreso. Durante el proceso de reingreso, se realizaron múltiples llamadas a la misma función del mismo contrato, pero el valor de retorno de cada llamada presentaba una gran diferencia. Esta diferencia se manifiesta principalmente en la función remove_liquidity.

Análisis del evento de ataque de reentrada de Flash Loans de Jarvis Network

Los ataques de reentrada ocurren durante el proceso de eliminación de liquidez. Dado que Polygon y EVM son cadenas homomorfas, cuando se transfiere MATIC al contrato, se activa la lógica de reentrada del contrato. A través de un análisis detallado de la pila de llamadas, encontramos que el problema radica en la función getUnderlyingPrice.

Análisis del evento de ataque de reentrada de Flash Loans de Jarvis Network

Una investigación más profunda reveló que los atacantes aprovecharon una vulnerabilidad en el momento de actualización de la variable self.D al eliminar la liquidez. Normalmente, el flujo del método remove_liquidity debería ser: 1) destruir el LP del usuario; 2) enviar los fondos apostados al usuario; 3) actualizar self.D. Sin embargo, los atacantes realizaron una operación de reentrada en el segundo paso, lo que provocó un error grave en el cálculo de precios.

Análisis del evento de ataque de reentrada de Flash Loans de Jarvis Network

A pesar de que la función remove_liquidity utiliza el decorador @nonreentrant('lock') para prevenir la reentrada, este bloqueo de reentrada no funcionó debido a que el atacante reentró en otros contratos para tomar prestados fondos.

Análisis del evento de ataque de reentrada de Flash Loans de Jarvis Network

Este ataque expuso principalmente dos problemas:

  1. La lógica de modificación de variables se encuentra después de la llamada externa, lo que provoca una anomalía en la obtención del precio.
  2. La reinserción entre contratos hace que el bloqueo de reinserción sea ineficaz.

Análisis del evento de ataque por reentrada de Flash Loans de Jarvis Network

Para prevenir ataques similares, se recomienda que los desarrolladores del proyecto tomen las siguientes medidas:

  1. Asegúrate de que el código haya pasado por una auditoría de seguridad rigurosa.
  2. Coloca la modificación de variables antes de la llamada externa.
  3. Utilizar múltiples fuentes de datos para obtener precios.
  4. Seguir la norma de codificación "primero juzgar, luego escribir en la variable, y después realizar la llamada externa" (Checks-Effects-Interactions).

Análisis del evento de ataque de reentrada de Flash Loans de Jarvis Network

Al adoptar estas medidas, el proyecto puede mejorar significativamente su seguridad y estabilidad, proporcionando a los usuarios un servicio más confiable.

Análisis del evento de ataque por reentrada de Flash Loans de Jarvis Network

Análisis del evento de ataque por reentrada de Flash Loans de Jarvis Network

Análisis del evento de ataque de reentrada del Flash Loans de Jarvis Network

Análisis del evento de ataque de reentrada de Flash Loans de Jarvis Network

Análisis del evento de ataque de reentrada de Flash Loans de Jarvis Network

Ver originales
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.
  • Recompensa
  • 2
  • Compartir
Comentar
0/400
WalletAnxietyPatientvip
· 08-04 20:55
El inversor minorista que es malo en el juego y le gusta jugar, recuerda hacer una copia de seguridad de la llave privada a tiempo.

Idioma del contenido: chino

Comentario dado:

No hacer auditoría de contratos y sufrir por esto es una pena~
Ver originalesResponder0
LiquidatedNotStirredvip
· 08-04 20:48
Otra vez reentrada jaja, ya era hora de bloquearlo.
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)