La pérdida de activos en cadena de 300,000 dólares causada por el residuo de almacenamiento transitorio: los desarrolladores deben tener cuidado con los riesgos de nuevas características.
Residuo mortal: Análisis de un evento en cadena de 300,000 dólares provocado por el almacenamiento transitorio
El 30 de marzo de 2025, un sistema de monitoreo de seguridad en cadena detectó un ataque a un proyecto de trading de apalancamiento en la red de Ethereum, lo que resultó en pérdidas de activos superiores a 300,000 dólares. El equipo de seguridad realizó un análisis exhaustivo de este incidente y ahora comparte los resultados a continuación:
Contexto
La versión 0.8.24 de Solidity introduce características de almacenamiento transitorio basadas en EIP-1153. Esta es una nueva ubicación de almacenamiento de datos que ofrece a los desarrolladores una forma de almacenamiento temporal de bajo costo y válida durante la transacción. Las principales características del almacenamiento transitorio incluyen:
Bajo costo de gas: la operación consume 100 gas de forma fija, muy por debajo de la operación de almacenamiento convencional.
Persistencia dentro de la transacción: los datos permanecen válidos durante toda la transacción.
Eliminación automática: Después de que la transacción haya finalizado, el almacenamiento transitorio se restablece automáticamente a cero.
Análisis de eventos
La causa fundamental de este incidente es que los valores almacenados temporalmente en la función mediante tstore no se borran después de que termina la llamada a la función, lo que permite a los atacantes aprovechar esta característica para construir direcciones maliciosas específicas y eludir la verificación de permisos para transferir tokens.
Los pasos del ataque son los siguientes:
El atacante crea dos tokens maliciosos A y B, y crea un fondo de liquidez para estos dos tokens 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 de deuda B y acuñar el token apalancado. Durante este proceso, la dirección del pool DEX y la cantidad acuñada se almacenan de forma transitoria.
Crear un contrato malicioso con una dirección que tenga la misma cantidad de acuñación en el almacenamiento transitorio.
A través de contratos maliciosos, se llama a la función de devolución de llamada del contrato objetivo, aprovechando los valores residuales en el almacenamiento transitorio para eludir la autenticación.
Por último, el atacante llama directamente a la función de callback del contrato objetivo a través de un ataque al contrato, transfiriendo otros tokens (como WBTC, WETH) para obtener ganancias.
Flujo de capital
Según los datos de la herramienta de análisis on-chain, los atacantes robaron activos por valor de aproximadamente 300,000 dólares, incluyendo:
17,814.8626 USDC
1.4085 WBTC
119.871 WETH
Estos activos fueron posteriormente convertidos a WETH, con un total de 193.1428 WETH transferidos a una herramienta de anonimización. La fuente inicial de fondos del atacante provino de 0.3 ETH transferidos a esa herramienta.
Consejos de seguridad
El equipo del proyecto debe usar tstore(key, 0) para limpiar el valor en el almacenamiento transitorio inmediatamente después de que finalice la llamada a la función, de acuerdo con la lógica del negocio.
Fortalecer la auditoría del código del contrato y las pruebas de seguridad, prestando especial atención a las nuevas características del lenguaje introducidas y sus riesgos potenciales.
Implementar mecanismos de múltiples verificaciones para evitar pérdidas masivas de activos causadas por una única vulnerabilidad.
Realizar evaluaciones de seguridad y escaneos de vulnerabilidades de forma periódica, y corregir de inmediato los problemas potenciales.
Considerar la introducción de un sistema de monitoreo de seguridad para supervisar en tiempo real comportamientos de transacciones anómalas.
Este evento nos recuerda una vez más que debemos ser especialmente cautelosos al adoptar nuevas tecnologías, entendiendo plenamente sus características y riesgos potenciales. Al mismo tiempo, las prácticas de seguridad continuas y las auditorías regulares son cruciales para garantizar la seguridad de los proyectos on-chain.
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.
10 me gusta
Recompensa
10
5
Compartir
Comentar
0/400
MemeTokenGenius
· 07-22 16:28
¿Así que 30 mil dólares se fueron? ¿Cuántas personas murieron?
Ver originalesResponder0
WhaleStalker
· 07-21 21:55
Otra vez un contrato inteligente cayó en el agujero.
Ver originalesResponder0
GateUser-1a2ed0b9
· 07-19 16:59
Otra persona ha fallado. ¿Quién te mandó a ser codicioso por lo barato?
La pérdida de activos en cadena de 300,000 dólares causada por el residuo de almacenamiento transitorio: los desarrolladores deben tener cuidado con los riesgos de nuevas características.
Residuo mortal: Análisis de un evento en cadena de 300,000 dólares provocado por el almacenamiento transitorio
El 30 de marzo de 2025, un sistema de monitoreo de seguridad en cadena detectó un ataque a un proyecto de trading de apalancamiento en la red de Ethereum, lo que resultó en pérdidas de activos superiores a 300,000 dólares. El equipo de seguridad realizó un análisis exhaustivo de este incidente y ahora comparte los resultados a continuación:
Contexto
La versión 0.8.24 de Solidity introduce características de almacenamiento transitorio basadas en EIP-1153. Esta es una nueva ubicación de almacenamiento de datos que ofrece a los desarrolladores una forma de almacenamiento temporal de bajo costo y válida durante la transacción. Las principales características del almacenamiento transitorio incluyen:
Análisis de eventos
La causa fundamental de este incidente es que los valores almacenados temporalmente en la función mediante tstore no se borran después de que termina la llamada a la función, lo que permite a los atacantes aprovechar esta característica para construir direcciones maliciosas específicas y eludir la verificación de permisos para transferir tokens.
Los pasos del ataque son los siguientes:
Flujo de capital
Según los datos de la herramienta de análisis on-chain, los atacantes robaron activos por valor de aproximadamente 300,000 dólares, incluyendo:
Estos activos fueron posteriormente convertidos a WETH, con un total de 193.1428 WETH transferidos a una herramienta de anonimización. La fuente inicial de fondos del atacante provino de 0.3 ETH transferidos a esa herramienta.
Consejos de seguridad
Este evento nos recuerda una vez más que debemos ser especialmente cautelosos al adoptar nuevas tecnologías, entendiendo plenamente sus características y riesgos potenciales. Al mismo tiempo, las prácticas de seguridad continuas y las auditorías regulares son cruciales para garantizar la seguridad de los proyectos on-chain.