Evento de ataque en cadena de 300,000 dólares: la vulnerabilidad de almacenamiento transitorio afecta a proyectos de comercio de márgen.

robot
Generación de resúmenes en curso

Residuos mortales: un ataque en cadena de 300,000 dólares originado en el almacenamiento transitorio

El 30 de marzo de 2025, un sistema de monitoreo de seguridad detectó un ataque a un proyecto de trading apalancado en la cadena de Ethereum, con pérdidas de más de 300,000 dólares en activos. El equipo de seguridad realizó un análisis exhaustivo de este incidente y ahora comparte los resultados a continuación:

Fondo

La versión 0.8.24 de Solidity (que se lanzará en enero de 2024) introduce características de almacenamiento transitorio basadas en EIP-1153. Este es un nuevo tipo de ubicación de almacenamiento de datos diseñado para proporcionar a los desarrolladores una forma de almacenamiento temporal que sea de bajo costo y efectiva durante las transacciones.

Las principales características del almacenamiento transitorio incluyen:

  1. Bajo costo de gas: el costo de gas de las operaciones TSTORE y TLOAD está fijo en 100.
  2. Persistencia en la transacción: los datos se mantienen válidos durante toda la transacción.
  3. Eliminación automática: Después de que se complete la transacción, el almacenamiento transitorio se restablece automáticamente a cero.

Residuos mortales: un robo de 300,000 dólares en cadena provocado por almacenamiento transitorio

Origen del ataque

La causa fundamental de este evento es que los valores almacenados temporalmente en la función utilizando tstore no se borran al finalizar la llamada a la función. Esto permite a los atacantes aprovechar esta característica para construir direcciones maliciosas específicas y eludir la verificación de permisos para retirar tokens.

Residuos mortales: un robo de 300,000 dólares en cadena provocado por almacenamiento transitorio

Proceso de ataque

  1. El atacante crea dos tokens maliciosos A y B, crea un pool para estos dos tokens en un DEX e inyecta liquidez, donde el token A es el contrato de ataque.

  2. El atacante llama a la función initialize del contrato Vault, utilizando el token A como colateral y el token B como deuda para crear el mercado de trading apalancado APE-21.

  3. El atacante llama a la función mint del contrato Vault, depositando el token de deuda B para acuñar el token apalancado APE. En este proceso, se realizan dos operaciones de almacenamiento transitorio: primero se almacena la dirección de un pool DEX y luego se almacena la cantidad de tokens acuñados.

Residuos Mortales: Un Robo de 300,000 Dólares en Cadena Provocado por Almacenamiento Transitorio

  1. El atacante crea un contrato malicioso mediante métodos especiales, cuya dirección es la misma que el valor almacenado de forma transitoria por segunda vez.

  2. El atacante llama directamente a la función de retorno del contrato Vault a través de este contrato malicioso para retirar tokens. Debido a que los valores en el almacenamiento transitorio no se han borrado, se permite erróneamente la verificación de la identidad del llamador.

  3. Finalmente, el atacante llama a la función de callback del contrato Vault a través del ataque al contrato (token A), transfiriendo otros tokens (como WBTC, WETH) del contrato Vault para obtener ganancias.

Residuos mortales: un robo de 300,000 dólares en cadena provocado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares causado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares provocado por almacenamiento transitorio

Residuos mortales: un atraco de 300,000 dólares en la cadena causado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares provocado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares causado por el almacenamiento transitorio

Residuos mortales: un robo de 300,000 dólares en cadena provocado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares provocado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares provocado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares provocado por almacenamiento transitorio

Residuos mortales: un atraco de 300,000 dólares en cadena provocado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares provocado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares provocado por almacenamiento transitorio

Residuos mortales: un robo en cadena de 300,000 dólares provocado por almacenamiento transitorio

Análisis de flujo de fondos

Según el análisis de herramientas de análisis on-chain, los atacantes robaron aproximadamente 300,000 dólares en activos, incluidos 17,814.8626 USDC, 1.4085 WBTC y 119.871 WETH. Estos activos fueron luego consolidado y convertido a WETH, finalmente transferido a un protocolo de intercambio privado.

Los fondos iniciales del atacante provienen de 0.3 ETH transferidos del protocolo de transacciones privadas.

Resumen y recomendaciones

El núcleo de este ataque radica en que el atacante aprovechó la característica de almacenamiento transitorio que mantiene el valor constante durante toda la transacción, eludiendo así la verificación de permisos de la función de devolución de llamada para obtener ganancias. Para prevenir situaciones similares, se recomienda a las partes del proyecto:

  1. Según la lógica de negocio, después de que se complete la llamada a la función, use inmediatamente tstore(key, 0) para limpiar los valores en el almacenamiento transitorio.
  2. Fortalecer la auditoría del código del contrato y las pruebas de seguridad.
  3. Utilice con precaución las características nuevas introducidas y comprenda plenamente sus riesgos potenciales.
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
  • 6
  • Compartir
Comentar
0/400
LayerZeroHerovip
· 08-02 23:27
Un ataque siempre tendrá una puerta trasera
Ver originalesResponder0
Web3ProductManagervip
· 08-01 12:37
Ataque al punto de fricción clásico de UX
Ver originalesResponder0
OnchainDetectivevip
· 08-01 04:23
Un error en el código puede llevar a perderlo todo.
Ver originalesResponder0
SchrodingersFOMOvip
· 08-01 04:18
Es peligroso lanzarse sin pruebas previas.
Ver originalesResponder0
ProbablyNothingvip
· 08-01 04:18
Tarde o temprano tendrá fallos.
Ver originalesResponder0
rug_connoisseurvip
· 08-01 04:11
Nueva vulnerabilidad para ganar dinero rápido
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)