En la primera operación, el monedero iniciador recibió aproximadamente 4.75M USDT después de pagar un flash loan, mientras que los depósitos usados para votar permanecieron bloqueados. El 24 de octubre de 2026, se usaron USDT prestados para comprar suficientes tokens X para tomar dos de los tres escaños en el senado de X100. La mayoría obtenida aprobó de inmediato operaciones de tesorería a través de liquidez controlada por el contrato ejecutor. Vender los tokens X recibidos permitió pagar el préstamo y desembolsar los fondos restantes. En las tres transacciones principales, se pagaron aproximadamente 4.848M USDT a los destinatarios. Incluyendo dos transacciones adicionales, la salida neta de USDT del pool legítimo alcanzó aproximadamente 4.849M USDT.
El mecanismo central está confirmado por registros históricos de transacciones. El rastreo cubre rutas individuales de los fondos recibidos hasta el punto de corte indicado; la dirección final del servicio se identificó mediante una etiqueta en el explorador de la blockchain.

Direcciones y sus roles
Todas las direcciones a continuación están en la red Ethereum. Los roles describen el comportamiento observado de las cuentas, no la identidad de las personas que las controlan.
| Dirección | Función establecida |
|---|---|
| 0x100a2c7f45fd48e217fdce72e658dc78fd43a100 | El token X; seis decimales |
| 0x79f35a33fe2813414851c4ae8daeacd14d822a46 | Freezer: contiene depósitos, poderes del senado y activos de tesorería |
| 0xcd5762ac6013fa762782ac1797ab09152c1028e8 | Módulo DEX de tesorería |
| 0x0d85edd90c94053fc5997551b1baa8a77aa02fa0 | Pool legítimo de X/USDT |
| 0x7ec2afdf3ec5964899894f8d58afa95cbb8ffd63 | Remitente de la primera transacción y destinatario de USDT |
| 0x37541fc4a6f1ec86889ba506f51dc39f2bedd10a | Contrato ejecutor de la primera transacción; conservó los tokens X |
Contexto
Los usuarios de X100 bloquean tokens X en el contrato Freezer. El senado clasifica las cuentas registradas según su cantidad actual de tokens bloqueados. Dos votos de tres son suficientes para aprobar operaciones que involucren liquidez de tesorería y swaps. Las tarifas de registro se cobran por separado de los depósitos bloqueados.
El Freezer contiene tokens X de tesorería junto con los depósitos de los usuarios. Después de ejecutar una operación, el contrato verifica si queda suficiente X para cubrir sus obligaciones sobre los fondos congelados. Un límite de tokens independiente restringe la cantidad de activos que se pueden desplegar en el mercado. Retirar posiciones de liquidez libera espacio bajo este límite. Sin embargo, ninguna de estas medidas por sí sola garantiza que las operaciones de tesorería se realicen en condiciones justas.
Cómo se desarrolló el ataque
El atacante llevó a cabo una secuencia compleja de acciones que permitió explotar una vulnerabilidad en el código fuente del contrato inteligente.
1. Obtención del control del senado
A las 14:11:47 UTC, la primera transacción, incluida en el bloque 26,263,022, tomó prestados 1,942,457.637245 USDT de Aave y compró aproximadamente 38,200 tokens X. Dos cuentas auxiliares bloquearon cada una 19,000.000001 X y pagaron por separado 100 X cada una para ser nominadas.
Antes de eso, el segundo lugar en la clasificación lo ocupaba un participante con 19,000 X.
Dado que la votación se basaba en la clasificación actual y ejecutar una decisión no requería esperar un período determinado, la nueva mayoría llevó a cabo la operación dentro de la misma transacción.
2. Convertir poderes en activos de tesorería
La mayoría obtenida aprobó un swap de 400,000 X por aproximadamente 35.68 USDT a través de liquidez creada y controlada por la propia operación. El contrato ejecutor recibió aproximadamente 399,987 X y luego vendió aproximadamente 131,703 X en el mercado legítimo por aproximadamente 6.693M USDT.
Aave recibió aproximadamente 1.943M USDT, incluida una comisión de financiamiento de aproximadamente 971.23 USDT. El monedero iniciador recibió aproximadamente 4.75M USDT, y el contrato ejecutor conservó aproximadamente 268,284 X. Los depósitos usados para votar permanecieron bloqueados: los fondos recibidos permitieron pagar el préstamo sin desbloquear los tokens. Los registros de liquidación muestran etapas sucesivas en el movimiento del mismo dinero; estos montos no se pueden sumar, ya que eso duplicaría el conteo de las pérdidas.
3. Recuperación y reutilización de poderes
A las 14:35:59, la segunda transacción usó un préstamo flash de 1.95M USDT de Morpho para crear dos depósitos de 19,000.000002 X y desplazar al primer par de participantes. Cinco retiros de posiciones de liquidez de la tesorería devolvieron alrededor de 50,000 X, liberando espacio bajo el límite antes del siguiente intercambio de autonegociación. Tras pagar el préstamo, el destinatario recibió alrededor de 96,382 USDT y 9,895 X.
A las 14:40:47, la tercera transacción usó las facultades ya en poder de los contratos auxiliares de la segunda operación, sin adquirir nuevos tokens bloqueados. Para ello, tomó un préstamo flash de 300 USDT y retiró una gran posición de liquidez de la tesorería. El pago final ascendió a alrededor de 1,909 USDT y 549,916 X. Las llamadas históricas al contrato muestran que la operación usó cuentas auxiliares para presentar propuestas y votar con los escaños del senado ya obtenidos. Según Bitquery, la reutilización fue posible porque las funciones de los contratos auxiliares que abren el acceso a la gobernanza no restringían qué direcciones podían llamarlas. Sin embargo, esta explicación sobre el control de acceso no fue verificada de forma independiente como parte de este análisis. Que las iniciaran monederos diferentes no prueba, por sí solo, que hubiera personas distintas detrás.
A continuación se produjeron dos transacciones más a las 14:40:59 y 14:41:23. Aumentaron la salida neta de USDT del pool en alrededor de 168.61 USDT. Ambas transacciones fueron enviadas por la misma dirección, y sus números de secuencia (nonces) eran consecutivos.
| Transacción principal | USDT pagado al destinatario | Salida neta de USDT del pool legítimo |
|---|---|---|
| Primera | 4,749,726.096973 | 4,750,733.001112 |
| Segunda | 96,381.883491 | 96,381.884163 |
| Tercera | 1,909.358758 | 1,873.897121 |
| Total de las tres transacciones principales | 4,848,017.339222 | 4,848,988.782396 |
El tercer pago también usó USDT recibido previamente de la tesorería. Por lo tanto, el monto del pago supera la reducción de los fondos del pool causada directamente por esa transacción. Sumando las dos transacciones posteriores, la salida combinada del pool a lo largo de las cinco transacciones asciende a 4,849,157.396718 USDT. Los fondos prestados, los pagos, los intercambios y los activos que permanecen en las direcciones se relacionan parcialmente con los mismos flujos de dinero. Los tokens X no vendidos no se incluyen en la estimación en dólares.
4. Intercambio y movimiento de los fondos recibidos
El primer destinatario intercambió alrededor de 4.75M USDT por 2,022.016 ETH. Luego, una dirección consolidadora recibió este ETH junto con los fondos que ya tenía y envió cuatro lotes de 400 ETH. En el punto de corte de los datos, el 26 de octubre a las 01:20:23 UTC, las cinco direcciones de retención verificadas tenían alrededor de 2,022.857 ETH, incluidos pequeños saldos no relacionados con los fondos de esta conversión.
El segundo destinatario intercambió alrededor de 96,382 USDT por 40.908 ETH. Dos direcciones intermedias movieron alrededor de 40.900 ETH a una dirección que Etherscan etiqueta como ChangeNOW Dep. Aquí es donde termina el rastreo de los fondos: no se ha confirmado la identidad del cliente, las liquidaciones posteriores ni si el dinero finalmente fue retirado a efectivo.

La vulnerabilidad
El costo de obtener el control de la gobernanza no guardaba casi ninguna relación con el valor de mercado de los activos ni con el tamaño del depósito necesario para votar. La mayoría obtenida pudo retirar fondos líquidos suficientes para pagar el préstamo usado para comprar el control, aunque los depósitos de votación permanecieron bloqueados.
Tres características de diseño hicieron posible esta situación:
- Las facultades surgían inmediatamente después de realizarse un nuevo depósito. Las funciones Freezer._stakeOf y Senate._tally usaban la cantidad actual de tokens bloqueados y la clasificación de los participantes. El período de validez de una propuesta limitaba la ventana durante la cual podía ejecutarse, pero la ruta de ejecución examinada no tenía un retraso mínimo antes de la ejecución. Dos cuentas nuevas obtuvieron una mayoría y la usaron de inmediato.
- Los votos a favor de una propuesta válida permitían operaciones de autonegociación. El módulo DEX verificaba si los tokens correspondientes estaban permitidos y si el pool existía, y luego aceptaba el retorno mínimo especificado en la propuesta. No ofrecía una verificación independiente de si los términos de la operación eran justos ni descartaba el uso de liquidez controlada por el ejecutor. Así, una operación aprobada formalmente permitía retirar activos de la tesorería en términos establecidos por la propia operación.
- Las verificaciones de cantidad protegían solo una condición más limitada. La verificación de que el monto total de los fondos congelados estuviera cubierto mantenía alineadas las obligaciones registradas en tokens X. Al mismo tiempo, retirar posiciones de liquidez liberaba espacio dentro del límite para desplegar activos en el mercado. Ninguna de estas verificaciones limitaba las pérdidas aceptables en el valor de la tesorería. Además, los contratos auxiliares permitían reutilizar poderes ya obtenidos en una operación anterior.
Respuesta y recuperación
Los materiales recopilados no contienen ninguna confirmación independiente de que los fondos hayan sido devueltos o de que la vulnerabilidad se haya corregido efectivamente. En el punto de corte registrado, quedaban aproximadamente 1.97 USDT en el pool legítimo, y las tres direcciones de ejecución y pago verificadas contenían aproximadamente 826,902 X. Estos saldos ilíquidos de X no pueden valorarse de forma confiable en dólares a partir del estado de un mercado drenado.
El Freezer seguía cubriendo las obligaciones registradas sobre los depósitos congelados, y el senado seguía teniendo los dos escaños obtenidos durante la segunda operación y controlados por contratos. Solo quedaban 0.000002 X antes del límite de despliegue observado. Sin embargo, esta instantánea no demuestra que se haya restablecido el control de la gobernanza ni que se haya corregido su mecanismo.
En retrospectiva: el precio del control
Otros ataques a mecanismos de gobernanza permiten comparar cuánto dinero se necesitó para obtener el control, qué poderes otorgó ese control y qué parte del valor de los activos se realizó efectivamente.
| Incidente | Fecha | Daño reportado |
|---|---|---|
| BonkDAO | 6 de julio de 2026 | 4.426 billones de BONK movidos, valorados en aproximadamente $19.3M |
| Term Finance | 23 de agosto de 2026 | Aproximadamente $8.46M en ETH y USDC |
| Astroport / Neutron | 22 de septiembre de 2026 | Aproximadamente $9.4M en valor total de activos; $1.96M en activos líquidos |
| Arkadiko | 22 de octubre de 2026 | Aproximadamente $1.09M como parte del drenaje de Arkadiko |
Estos casos y estimaciones se basan en informes publicados; la secuencia completa de acciones en cada ataque no fue reconstruida de forma independiente. Los cálculos utilizan diferentes enfoques de valoración, y el valor declarado de los tokens no demuestra, por sí mismo, que pudieran venderse por el monto correspondiente.
Exposición financiera. En el caso de BonkDAO, los tokens de votación fueron devueltos, y en el caso de Arkadiko, los tokens DIKO fueron revendidos. Esto difiere de la situación de X100, donde los depósitos permanecieron bloqueados. El capital necesario para obtener el control y los fondos que quedan en riesgo posteriormente son indicadores diferentes. El costo neto total de obtener el control en estos casos no fue reconstruido de forma independiente. Según los informes, en Term Finance el control se obtuvo mediante un wrapper alrededor del token de gobernanza, del cual se emitió solo una pequeña cantidad; la ejecución se produjo después del período de votación.
Poderes. Según los datos publicados, la secuencia de eventos en Astroport / Neutron incluyó once reasignaciones de administradores de contratos, seguidas de diez migraciones maliciosas y retiros de activos. En Arkadiko, se aprobó un contrato privilegiado cuyas funciones públicas de retiro y acuñación no verificaban los permisos del llamante. En X100, en cambio, la mayoría aprobó operaciones de tesorería con autonegociación. En todos estos casos, los derechos de voto dieron acceso a diferentes formas de controlar activos.
Valor realizable. Solo una parte del BONK robado se transfirió a un exchange; depositar tokens en una dirección de exchange no demuestra, por sí mismo, que hayan sido vendidos. X100 conservó tokens X sin vender cuyo posible producto no puede determinarse de forma confiable. Quemar tokens USDA en Arkadiko redujo la oferta sin respaldo, pero no devolvió la garantía. El valor estimado de los tokens de la tesorería, la cantidad de tokens emitidos y los fondos realmente recibidos de una venta son indicadores diferentes.

