Una vulnerabilidad de almacenamiento transitorio causó pérdidas de 300,000 dólares en un proyecto de comercio de márgen de Ethereum.

Vulnerabilidad de almacenamiento transitorio provoca el robo de activos por valor de 300,000 dólares

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

Fondo

La versión 0.8.24 de Solidity introdujo características de almacenamiento transitorio basadas en EIP-1153. Esta es una nueva ubicación de almacenamiento de datos, diseñada para proporcionar a los desarrolladores una forma de almacenamiento temporal de bajo costo y efectiva durante las transacciones. El almacenamiento transitorio se implementa a través de dos nuevas instrucciones EVM, TSTORE y TLOAD, que tienen características como bajo costo de gas, persistencia dentro de la transacción y eliminación automática.

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

Motivo del ataque

La causa fundamental de este evento es que el valor almacenado temporalmente en la función mediante tstore no se borró al finalizar la llamada a la función. Los atacantes aprovecharon esta característica para construir direcciones maliciosas específicas y eludir la verificación de permisos para transferir tokens.

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

Pasos del ataque

  1. El atacante crea dos tokens maliciosos A y B, y crea un fondo para estos dos tokens en un DEX y proporciona liquidez.

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

  3. El atacante llama a la función mint del contrato Vault, depositando el token de deuda B para acuñar el token apalancado. En este proceso, la dirección del grupo DEX y la cantidad acuñada se almacenan de forma transitoria.

  4. El atacante crea un contrato malicioso cuya dirección es la misma que el valor almacenado de forma temporal en la segunda vez.

  5. El atacante utiliza un contrato malicioso para llamar a la función de retorno del contrato Vault y retirar tokens. Debido a que los valores de almacenamiento transitorio no se han borrado, se produce un error en la verificación de identidad.

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

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

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

Residuos mortales: un atraco 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 un almacenamiento transitorio

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

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

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

Análisis del flujo de fondos

Los atacantes robaron aproximadamente 300,000 dólares en activos, incluyendo 17,814.8626 USDC, 1.4085 WBTC y 119.871 WETH. El WBTC fue cambiado por 63.5596 WETH, y el USDC fue cambiado por 9.7122 WETH. Posteriormente, un total de 193.1428 WETH fue transferido a una plataforma anónima. Los fondos iniciales de los atacantes provinieron de 0.3 ETH transferidos a esa plataforma.

Resumen

El núcleo de este ataque radica en que el atacante aprovecha la característica de que el almacenamiento transitorio se mantiene constante durante toda la transacción, eludiendo la verificación de permisos de la función de callback. Se sugiere que el equipo del proyecto elimine inmediatamente los valores en el almacenamiento transitorio utilizando tstore(key, 0) al finalizar la llamada de función, de acuerdo con la lógica de negocio. Al mismo tiempo, se debe fortalecer la auditoría del código del contrato y las pruebas de seguridad para prevenir la ocurrencia de situaciones similares.

ETH5.7%
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
  • 7
  • Compartir
Comentar
0/400
VitaliksTwinvip
· hace5h
Esta ola de resumen aún desperdicia gas.
Ver originalesResponder0
CountdownToBrokevip
· hace5h
30w viene otro hermano de envío
Ver originalesResponder0
0xLuckboxvip
· hace6h
Otra vez me robaron trescientos mil~contratos inteligentes cuídate
Ver originalesResponder0
OnchainGossipervip
· hace6h
¿Otra vez se ha explotado una vulnerabilidad? ¿Es tonto o qué?
Ver originalesResponder0
GateUser-0717ab66vip
· hace6h
30w también se atreve a mencionarlo
Ver originalesResponder0
VibesOverChartsvip
· hace6h
¿30w? Solo la tarifa de transacción de un día.
Ver originalesResponder0
DefiPlaybookvip
· hace6h
¡Atención! Según el muestreo de datos, este tipo de vulnerabilidades de almacenamiento puede causar una tasa de pérdida de hasta el 86.3%.
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)