GMX fue atacado, el atacante llevó a cabo el ataque a través de una vulnerabilidad de reentrada en el contrato del proyecto, obteniendo ganancias de aproximadamente 42 millones de dólares. El equipo de seguridad de Beosin realizó un análisis de vulnerabilidades y un seguimiento de fondos sobre este incidente de ataque, y compartieron los resultados a continuación:
Pasos de ataque detallados
El atacante primero utiliza el mecanismo de reembolso de margen en la función executeDecreaseOrder del contrato OrderBook para iniciar un ataque de reentrada y eludir el interruptor de apalancamiento del contrato Timelock del proyecto:
Luego, el ataque toma prestado USDC a través de un préstamo relámpago para acuñar GLP mediante el staking, mientras aumenta la posición corta de BTC con USDC como margen, lo que provoca que el valor AUM del contrato GLPmanager esté inflado, y este valor afecta el precio de GLP.
Finalmente, el atacante canjeó GLP a un precio anómalo para obtener ganancias y especificó que lo cambiara por otros tokens.
análisis de vulnerabilidades
A través del proceso de ataque mencionado, podemos ver que las razones de la explotación de la vulnerabilidad en todo el evento son las siguientes dos puntos:
Falta protección contra reentradas, lo que provoca modificaciones en el estado interno durante el proceso de redención.
La lógica de redención es bastante compleja y falta de suficientes verificaciones de seguridad.
Aunque GMX ha pasado por múltiples auditorías de seguridad, esta vulnerabilidad de reentrada fue ignorada. Y si se hubiera realizado una revisión más estricta de la lógica de redención y se hubiera considerado la posible existencia de vulnerabilidades de reentrada, se podrían haber evitado este tipo de incidentes de seguridad.
Seguimiento de fondos robados
Beosin Trace ha rastreado los fondos robados y ha descubierto: la dirección del atacante 0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355 obtuvo aproximadamente 42 millones de dólares, luego el protocolo DeFi intercambió stablecoins y altcoins por ETH y USDC, transfiriendo los activos robados a través de múltiples protocolos de cadena cruzada a la red Ethereum. Actualmente, los activos robados, con un valor de aproximadamente 32 millones, están almacenados en las siguientes 4 direcciones de la red Ethereum:
0xe9ad5a0f2697a3cf75ffa7328bda93dbaef7f7e7
0x69c965e164fa60e37a851aa5cd82b13ae39c1d95
0xa33fcbe3b84fb8393690d1e994b6a6adc256d8a3
0x639cd2fc24ec06be64aaf94eb89392bea98a6605
Aproximadamente 10 millones de dólares en activos están almacenados en la dirección 0xdf3340a436c27655ba62f8281565c9925c3a5221 de la red Arbitrum. Beosin Trace ha añadido las direcciones relacionadas con el hacker a la lista negra y continuará rastreando.
Según el análisis de Beosin Trace, todos los fondos robados aún se encuentran en múltiples direcciones del atacante.
resumen
El núcleo del ataque radica en que el contrato GMX presenta una vulnerabilidad de reentrada, lo que permite a los atacantes redimir grandes cantidades de activos con beneficios a través de un aumento falso en el valor de AUM. Protocolos DeFi complejos como GMX requieren auditorías de seguridad en múltiples niveles y aspectos, así como pruebas y revisiones exhaustivas del código del contrato. Anteriormente, el equipo de seguridad de Beosin ha completado auditorías de seguridad para varios protocolos DeFi (como Surf Protocol, SyncSwap, LeverFi, Owlto Finance), centrándose en identificar defectos lógicos en los contratos y situaciones extremas que podrían ser pasadas por alto, asegurando que los protocolos DeFi sean sometidos a una detección integral.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Análisis de vulnerabilidades del incidente de seguridad de GMX y seguimiento de los fondos robados
GMX fue atacado, el atacante llevó a cabo el ataque a través de una vulnerabilidad de reentrada en el contrato del proyecto, obteniendo ganancias de aproximadamente 42 millones de dólares. El equipo de seguridad de Beosin realizó un análisis de vulnerabilidades y un seguimiento de fondos sobre este incidente de ataque, y compartieron los resultados a continuación:
Pasos de ataque detallados
El atacante primero utiliza el mecanismo de reembolso de margen en la función executeDecreaseOrder del contrato OrderBook para iniciar un ataque de reentrada y eludir el interruptor de apalancamiento del contrato Timelock del proyecto:
Luego, el ataque toma prestado USDC a través de un préstamo relámpago para acuñar GLP mediante el staking, mientras aumenta la posición corta de BTC con USDC como margen, lo que provoca que el valor AUM del contrato GLPmanager esté inflado, y este valor afecta el precio de GLP.
Finalmente, el atacante canjeó GLP a un precio anómalo para obtener ganancias y especificó que lo cambiara por otros tokens.
análisis de vulnerabilidades
A través del proceso de ataque mencionado, podemos ver que las razones de la explotación de la vulnerabilidad en todo el evento son las siguientes dos puntos:
Falta protección contra reentradas, lo que provoca modificaciones en el estado interno durante el proceso de redención.
La lógica de redención es bastante compleja y falta de suficientes verificaciones de seguridad.
Aunque GMX ha pasado por múltiples auditorías de seguridad, esta vulnerabilidad de reentrada fue ignorada. Y si se hubiera realizado una revisión más estricta de la lógica de redención y se hubiera considerado la posible existencia de vulnerabilidades de reentrada, se podrían haber evitado este tipo de incidentes de seguridad.
Seguimiento de fondos robados
Beosin Trace ha rastreado los fondos robados y ha descubierto: la dirección del atacante 0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355 obtuvo aproximadamente 42 millones de dólares, luego el protocolo DeFi intercambió stablecoins y altcoins por ETH y USDC, transfiriendo los activos robados a través de múltiples protocolos de cadena cruzada a la red Ethereum. Actualmente, los activos robados, con un valor de aproximadamente 32 millones, están almacenados en las siguientes 4 direcciones de la red Ethereum:
0xe9ad5a0f2697a3cf75ffa7328bda93dbaef7f7e7
0x69c965e164fa60e37a851aa5cd82b13ae39c1d95
0xa33fcbe3b84fb8393690d1e994b6a6adc256d8a3
0x639cd2fc24ec06be64aaf94eb89392bea98a6605
Aproximadamente 10 millones de dólares en activos están almacenados en la dirección 0xdf3340a436c27655ba62f8281565c9925c3a5221 de la red Arbitrum. Beosin Trace ha añadido las direcciones relacionadas con el hacker a la lista negra y continuará rastreando.
Según el análisis de Beosin Trace, todos los fondos robados aún se encuentran en múltiples direcciones del atacante.
resumen
El núcleo del ataque radica en que el contrato GMX presenta una vulnerabilidad de reentrada, lo que permite a los atacantes redimir grandes cantidades de activos con beneficios a través de un aumento falso en el valor de AUM. Protocolos DeFi complejos como GMX requieren auditorías de seguridad en múltiples niveles y aspectos, así como pruebas y revisiones exhaustivas del código del contrato. Anteriormente, el equipo de seguridad de Beosin ha completado auditorías de seguridad para varios protocolos DeFi (como Surf Protocol, SyncSwap, LeverFi, Owlto Finance), centrándose en identificar defectos lógicos en los contratos y situaciones extremas que podrían ser pasadas por alto, asegurando que los protocolos DeFi sean sometidos a una detección integral.