Un ataque de flash loan secuestra la gobernanza de X100 y drena 4,85 millones de dólares
Puntos clave
- •Los atacantes tomaron prestado alrededor de 1,94 millones de USDT mediante un flash loan de Aave, compraron 38.200 tokens X y los apostaron a través de dos contratos recién desplegados para capturar dos de los tres escaños del Senado de gobernanza de X100 dentro de una sola transacción.
- •Debido a que los contratos de gobernanza de X100 permitían a los senadores recién registrados votar y ejecutar propuestas en la misma transacción, el atacante drenó activos de tesorería y liquidez sin ningún timelock ni período de espera.
- •Las ganancias iniciales de unos 4,75 millones de dólares se convirtieron en aproximadamente 2.022 ETH a través de UniswapX, con 1.600 ETH distribuidos posteriormente entre cuatro billeteras recién creadas con 400 ETH cada una.
- •El token X cayó más del 96% según datos de CoinGecko, aunque la liquidez restante extremadamente baja hace que el precio mostrado no sea una medida confiable del valor de mercado realizable.
- •Según la evaluación de Blockaid del 24 de octubre, aproximadamente 12,2 millones de X permanecían en el contrato Freezer, y no se había revelado ninguna recuperación de fondos, remediación del contrato ni acuerdo de compensación.

X100, un proyecto DeFi basado en Ethereum, perdió aproximadamente 4,85 millones de dólares en USDT el 24 de octubre después de que atacantes usaran flash loans para tomar el control de su sistema de gobernanza y ejecutar propuestas maliciosas contra la tesorería y las reservas de liquidez del proyecto.
Al capturar dos de los tres escaños del Senado de gobernanza de X100, los atacantes pudieron aprobar y ejecutar transacciones sin esperar ningún retraso de gobernanza. El ataque inicial generó alrededor de 4,75 millones de dólares en ganancias, y retiros adicionales elevaron la pérdida total a 4,85 millones de dólares.
La firma de seguridad blockchain Blockaid alertó sobre el exploit en curso a las 14:49 UTC en una publicación en X, identificando múltiples transacciones maliciosas dirigidas al contrato Freezer del protocolo. Una actualización posterior de la firma identificó aproximadamente 550.000 tokens X adicionales extraídos de una posición de liquidez en Uniswap, mientras que alrededor de 12,2 millones de X permanecían en el Freezer.
Un flash loan asegura la mayoría en el Senado
El primer ataque comenzó a las 14:11 UTC, cuando una billetera tomó prestado aproximadamente 1,94 millones de USDT mediante un flash loan de Aave y usó los fondos para comprar 38.200 tokens X. El atacante dividió los tokens entre dos contratos recién desplegados, cada uno con un staking de poco más de 19.000 X en el sistema Freezer de X100. Esos depósitos desplazaron a los miembros existentes del Senado y le dieron al atacante el control de dos de los tres escaños del órgano de gobernanza.
Con la mayoría requerida asegurada, el atacante presentó y ejecutó de inmediato una propuesta que ordenaba a la tesorería vender 400.000 X en un pool de liquidez recién creado en PancakeSwap V3. Debido a que el pool manipulado contenía solo una pequeña cantidad de USDT, el atacante adquirió los tokens de la tesorería por aproximadamente 35,68 USDT antes de retirar la liquidez.
Luego, el atacante vendió aproximadamente 131.703 X a través de un pool existente de Uniswap V3, recibiendo alrededor de 6,69 millones de USDT. Tras devolver el flash loan, la transacción generó aproximadamente 4,75 millones de dólares en ganancias netas.
El exploit fue posible porque los contratos de gobernanza de X100 permitían que los senadores recién registrados votaran y ejecutaran propuestas dentro de la misma transacción de blockchain. Los flash loans, que proporcionan préstamos sin colateral que deben devolverse dentro de una sola transacción, le dieron al atacante el capital temporal necesario para adquirir poder de voto. El protocolo carecía de un período de espera efectivo entre la obtención de la autoridad de gobernanza y el ejercicio del control sobre los activos de la tesorería. Los timelocks, que difieren la ejecución de una propuesta hasta un bloque posterior, son una salvaguarda ampliamente utilizada en la gobernanza DeFi precisamente porque dan a los tenedores de tokens tiempo para reaccionar —y salir— antes de que las transacciones que afectan la tesorería surtan efecto. El incidente de X100 muestra cómo, en sistemas de gobernanza ponderados por tokens, el propio mecanismo de votación puede convertirse en la de ataque incluso cuando los contratos del token y la tesorería de un protocolo no son explotados directamente.
Las ganancias se convierten en Ether
Las ganancias iniciales se cambiaron rápidamente por aproximadamente 2.022 ETH a través de UniswapX, y la criptomoneda resultante fue transferida a otra billetera de Ethereum. Esa dirección distribuyó posteriormente 1.600 ETH entre cuatro billeteras recién creadas, cada una recibiendo 400 ETH, mientras que aproximadamente 423 ETH permanecían en la dirección de consolidación durante el análisis inicial de las transacciones.
Tras el primer retiro se produjeron ataques de gobernanza adicionales. A las 14:35 UTC, una segunda transacción usó una estrategia de flash loan similar para capturar escaños del Senado y eliminar posiciones de liquidez de Uniswap V3 controladas por el contrato Freezer, generando aproximadamente 96.382 USDT en ganancias adicionales. Una tercera transacción a las 14:40 UTC usó la vía de gobernanza comprometida para retirar otra posición de liquidez que contenía aproximadamente 550.000 tokens X. Esos tokens fueron extraídos por separado del total de 4,85 millones de USDT.
Las transacciones provinieron de diferentes billeteras emisoras, y los investigadores no han establecido si eran controladas por atacantes distintos o coordinadas por una sola parte.
El token se desploma mientras la vulnerabilidad sigue expuesta
El token de X100 sufrió una fuerte caída después del ataque, y los datos de trading, reflejados en CoinGecko, indican una caída superior al 96% a medida que la liquidez desapareció de su pool de trading principal. El porcentaje citado debe tomarse con cautela, porque la liquidez restante era extremadamente baja, lo que hace que el precio mostrado del token no sea una medida confiable del valor de mercado realizable.
El ataque es el más reciente de una serie de exploits de gobernanza impulsados por flash loans. En agosto, un atacante obtuvo suficiente autoridad de gobernanza sobre Term Finance para ejecutar propuestas maliciosas y drenar aproximadamente 8,5 millones de dólares de bóvedas de préstamos basadas en Ethereum. Un ataque de flash loan independiente contra Shibarium en septiembre también involucró la adquisición temporal de tokens relacionados con la gobernanza, aunque ese incidente apuntaba a la autoridad de validadores y activos de puente en lugar de la ejecución inmediata de propuestas de tesorería. En estos incidentes, la autoridad sobre los activos del protocolo estaba vinculada a tokens que podían adquirirse dentro de una sola transacción, dejando los umbrales de quórum y aprobación como última línea de defensa.
En el caso de X100, el requisito de aprobación de dos tercios del Senado ofreció poca protección, porque la autoridad de voto podía adquirirse y ejercerse de inmediato con capital prestado.
Durante las horas iniciales después del exploit, el proyecto no había publicado un informe público del incidente ni confirmado un plan de recuperación, y Blockaid continuó advirtiendo sobre exposición activa después de identificar la tercera transacción. Aproximadamente 12,2 millones de X permanecían en el contrato Freezer en el momento de la evaluación de la firma del 24 de octubre. No se había revelado ninguna recuperación confirmada de los fondos retirados, remediación del contrato ni acuerdo de compensación. Si los tokens aún custodiados en el contrato Freezer se moverán a continuación, y si el proyecto dará seguimiento con un análisis post-mortem o cambios de gobernanza, permanecían como las principales preguntas abiertas tras la evaluación de Blockaid del 24 de octubre.