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.
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.
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.
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.
Proceso de ataque
El atacante crea dos tokens maliciosos A y B, y crea un fondo de liquidez para ellos en un DEX.
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.
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.
Crear un contrato malicioso con una dirección que sea igual al segundo valor de almacenamiento transitorio.
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.
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.
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.
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:
Utiliza tstore(key inmediatamente después de que termine la llamada a la función para limpiar los valores en el almacenamiento transitorio, 0).
Reforzar la auditoría del código del contrato y las pruebas de seguridad.
Utilice con precaución las nuevas características del lenguaje introducidas, y comprenda plenamente sus riesgos potenciales.
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.
7 me gusta
Recompensa
7
6
Compartir
Comentar
0/400
PensionDestroyer
· hace6h
Otra vez tontos han enviado.
Ver originalesResponder0
TestnetFreeloader
· hace6h
¿Qué demonios? ¿Acaso no puedes sostener tu propio proyecto mientras haces el tonto?
Ver originalesResponder0
LootboxPhobia
· hace7h
Mal, mal, otro hermano ha pisado una mina.
Ver originalesResponder0
BearMarketMonk
· hace7h
Hacer farming también se llevó el agujero del contrato
Ver originalesResponder0
DeFiAlchemist
· hace7h
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
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.
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.
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:
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.
Proceso de ataque
Análisis del flujo de capital
Los atacantes robaron aproximadamente 300,000 dólares en activos, incluyendo:
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.
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: