El 8 de enero de 2026, el protocolo Truebit Protocol fue atacado por hackers, con una pérdida de 8,535.36 ETH (aproximadamente 26.44 millones de dólares). Truebit Protocol confirmó oficialmente el incidente en la madrugada del día siguiente. El equipo de seguridad de ExVul realizó un análisis detallado de la vulnerabilidad de este ataque, y los resultados son los siguientes:
Proceso del ataque
Dirección del atacante:
0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50
Hash de la transacción del ataque:
0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
El atacante completó el ataque realizando 4 llamadas cíclicas a getPurchasePrice→0xa0296215→0xc471b10b. Tomemos como ejemplo el primer ciclo para el análisis.
1. El atacante primero llamó a la función getPurchasePrice(240442509453545333947284131), que devolvió 0.
2. El atacante llamó a la función 0xa0296215(c6e3ae8e2cbab1298abaa3) con msg.value igual a 0. Finalmente, se acuñaron con éxito 240442509453545333947284131 tokens TRU.
3. El atacante llamó a la función 0xc471b10b(c6e3ae8e2cbab1298abaa3). Finalmente, se quemaron 240442509453545333947284131 tokens TRU y se obtuvieron 5105.06 ETH.
Análisis de la lógica del ataque
Al comprender el proceso de ataque anterior, es evidente que existe un problema en la lógica de las funciones getPurchasePrice y 0xa0296215. A continuación, se realiza un análisis en profundidad (dado que el contrato no es de código abierto, el siguiente código es descompilado).
Al comparar los puntos en común de las dos funciones, podemos observar que la función 0x1446 se utiliza para obtener cuánto ETH se necesita para comprar una cantidad específica de TRU. Evidentemente, la lógica de la función 0x1446 tiene un problema que provoca un cálculo incorrecto del ETH. A continuación, se analiza en detalle la lógica de la función 0x1446.
Al examinar la lógica de la función 0x1446, dado que el resultado final v13 == 0, es claro que hubo un problema en la lógica de cálculo mencionada anteriormente. Es importante señalar que la función 0x18ef es similar a _SafeMul, por lo que el problema radica en la suma nativa v12 + v9 (la versión del contrato es ^0.6.10, por lo que no hay verificación de desbordamiento).
v12 y v9 representan, respectivamente:
Según el análisis anterior, la estrategia del atacante consistió en ingresar un _amountIn enorme para que v12 + v9 se desbordara y se convirtiera en un valor muy pequeño,最终 haciendo que (v12 + v9) / v6 == 0.
Conclusión
La causa fundamental del ataque a Truebit Protocol fue una grave vulnerabilidad de desbordamiento de enteros en la lógica de cálculo del precio de compra de tokens. Dado que el contrato utilizaba la versión Solidity ^0.6.10 y no realizaba verificaciones de seguridad en operaciones aritméticas clave,最终 se produjo una pérdida significativa de 8,535.36 ETH. Las versiones más recientes de Solidity ya mitigan la vulnerabilidad de desbordamiento. Este ataque probablemente fue descubierto por hackers que utilizan IA para escanear automáticamente vulnerabilidades en protocolos DeFi antiguos ya implementados (incluidos los recientes ataques a Balancer y yETH). Creemos que este tipo de incidentes, donde se aprovechan protocolos DeFi antiguos mediante IA, aumentarán en el futuro cercano. Por lo tanto, recomendamos que los proyectos realicen nuevas auditorías de seguridad del código de sus contratos. Si se descubre una vulnerabilidad, es crucial actualizar el contrato o transferir los activos lo antes posible, además de implementar monitoreo en cadena para detectar anomalías a tiempo y minimizar las pérdidas.













