Las vulnerabilidades de almacenamiento transitorio causan un ataque de 300,000 dólares a proyectos on-chain. Análisis de expertos y recomendaciones de prevención.

robot
Generación de resúmenes en curso

Análisis del incidente de ataque en cadena de 300,000 dólares provocado por vulnerabilidades de almacenamiento transitorio

El 30 de marzo de 2025, un proyecto de trading apalancado en la cadena sufrió un ataque, lo que resultó en una pérdida de más de 300,000 dólares en activos. El equipo de seguridad realizó un análisis exhaustivo del incidente y ahora comparte los resultados a continuación:

Fondo

El ataque ocurrió en la red Ethereum, y el objetivo fue un proyecto de trading apalancado. El atacante aprovechó una vulnerabilidad relacionada con el almacenamiento transitorio en el contrato del proyecto.

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

Conocimientos previos

La versión 0.8.24 de Solidity introdujo la característica de almacenamiento transitorio (transient storage), que es una nueva ubicación de almacenamiento de datos. Sus principales características incluyen:

  • Bajo costo de gas: las operaciones TSTORE y TLOAD consumen 100 gas de forma fija.
  • Persistencia en la transacción: los datos se mantienen válidos durante toda la transacción
  • Eliminación automática: se restablece a cero automáticamente al finalizar la transacción.

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

Causa de la vulnerabilidad

La causa fundamental de este ataque es que los valores almacenados de forma transitoria en el contrato mediante tstore no se limpian después de que finaliza la llamada a la función. Esto permite a los atacantes aprovechar esta característica para construir direcciones específicas, eludir las comprobaciones de permisos y retirar tokens.

Residuos mortales: un robo on-chain de 300,000 dólares provocado por almacenamiento transitorio

Proceso de ataque

  1. El atacante crea dos tokens maliciosos A y B, y crea un fondo de liquidez para ellos en un DEX.
  2. Llamar a la función initialize del contrato objetivo, utilizando el token A como colateral y el token B como token de deuda para crear un mercado de trading apalancado.
  3. Llamar a la función mint para depositar el token B y acuñar un token de apalancamiento, durante este proceso se realizaron dos operaciones de almacenamiento transitorio.
  4. Crear un contrato malicioso con una dirección que sea igual al segundo valor de almacenamiento transitorio.
  5. A través de este contrato malicioso, se llama a la función de retorno del contrato objetivo, eludiendo la verificación de permisos para transferir tokens.
  6. Finalmente, a través del contrato de ataque (token A) se vuelve a llamar a la función de callback para transferir otros tokens (como WBTC, WETH) y 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 provocado por almacenamiento transitorio

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

Residuos mortales: un robo en cadena de 300,000 dólares provocado por el 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 de 300,000 dólares en cadena provocado por almacenamiento transitorio

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

Residuo mortal: un robo en cadena de 300,000 dólares provocado por 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 el almacenamiento transitorio

Análisis del flujo de capital

Los atacantes robaron aproximadamente 300,000 dólares en activos, incluyendo:

  • 17,814.8626 USDC
  • 1.4085 WBTC
  • 119.871 WETH

Luego, el atacante intercambió WBTC y USDC por WETH, y finalmente transfirió 193.1428 WETH a un servicio de mezcla.

Los fondos iniciales del atacante (0.3 ETH) también provienen de este servicio de mezcla.

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

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

Resumen y Sugerencias

El núcleo del ataque se basó en aprovechar la característica de almacenamiento transitorio que mantiene el valor constante durante toda la transacción, eludiendo así la verificación de permisos del contrato. Para prevenir ataques similares, se recomienda a los desarrolladores del proyecto:

  1. Utiliza tstore(key inmediatamente después de que termine la llamada a la función para limpiar los valores en el almacenamiento transitorio, 0).
  2. Reforzar la auditoría del código del contrato y las pruebas de seguridad.
  3. Utilice con precaución las nuevas características del lenguaje introducidas, y comprenda plenamente sus riesgos potenciales.
WBTC1.06%
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
PensionDestroyervip
· hace15h
Otra vez tontos han enviado.
Ver originalesResponder0
TestnetFreeloadervip
· hace15h
¿Qué demonios? ¿Acaso no puedes sostener tu propio proyecto mientras haces el tonto?
Ver originalesResponder0
LootboxPhobiavip
· hace15h
Mal, mal, otro hermano ha pisado una mina.
Ver originalesResponder0
BearMarketMonkvip
· hace15h
Hacer farming también se llevó el agujero del contrato
Ver originalesResponder0
DeFiAlchemistvip
· hace15h
ah, otro cordero sacrificial a las artes oscuras de la explotación de contratos inteligentes... *ajusta la bola de cristal* estas vulnerabilidades de almacenamiento efímero son como grietas en el sello hermético de la alquimia del protocolo
Ver originalesResponder0
TestnetNomadvip
· hace15h
¡Qué desastre! Nuevamente me han estafado.
Ver originalesResponder0
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)