Un bug de calcul ayant permis le piratage de Truebit pour 8535 ETH

By: WEEX|13/01/2026 09:00:06
Titre original : « Analyse de la vulnérabilité du contrat liée au piratage du protocole Truebit 26,44 M $ »
Source originale : ExVul Security

Le 08/01/2026, le protocole Truebit a été piraté, entraînant une perte de 8,535.36 ETH (environ 26,44 M $). L’annonce officielle du protocole Truebit a été publiée tôt le lendemain. L’équipe de sécurité d’ExVul a réalisé une analyse détaillée de la vulnérabilité exploitée lors de cette attaque. Voici ses conclusions :

Déroulement de l’attaque

Adresse de l’attaquant :

0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50

Hash de la transaction d’attaque :

0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014

L’attaquant a mené l’attaque en effectuant 4 boucles d’appels aux transactions getPurchasePrice→0xa0296215→0xc471b10b. L’analyse prend la première boucle comme exemple.

1. L’attaquant a d’abord appelé la fonction getPurchasePrice(240442509453545333947284131), qui a renvoyé 0.

Un bug de calcul ayant permis le piratage de Truebit pour 8535 ETH

2. L’attaquant a appelé la fonction 0xa0296215(c6e3ae8e2cbab1298abaa3) avec un msg.value de 0 et a réussi à créer 240442509453545333947284131 tokens TRU.

3. L’attaquant a appelé la fonction 0xc471b10b(c6e3ae8e2cbab1298abaa3). Il a ensuite brûlé 240442509453545333947284131 tokens TRU et reçu 5105.06 ETH.

Analyse de la logique de l’attaque

L’examen du déroulement de l’attaque ci-dessus montre que la logique des fonctions getPurchasePrice et 0xa0296215 présente des problèmes. Voici une analyse approfondie (le contrat n’étant pas open source, le code ci-dessous est décompilé).

En comparant les similitudes entre les deux fonctions, on constate que la fonction 0x1446 sert à déterminer la quantité d’ETH nécessaire pour acheter une quantité donnée de TRU. La logique de la fonction 0x1446 comporte manifestement une faille, qui entraîne un calcul erroné de la quantité d’ETH. Voici une analyse détaillée de sa logique.

En observant la logique de la fonction 0x1446, on remarque que le résultat final du calcul v13  == 0, ce qui confirme que la logique de calcul décrite précédemment est défaillante. Il est important de noter que la fonction 0x18ef équivaut à _SafeMul : le problème vient donc de l’utilisation de l’addition native v12 + v9 (la version du contrat est  ^0.6.10 et ne vérifie donc pas les débordements).

v12 et v9 représentent :

L’analyse ci-dessus montre que l’attaquant a saisi une valeur _amountIn très élevée afin de provoquer un débordement de v12 + v9 et d’obtenir une valeur très faible, de sorte que (v12 + v9) / v6 == 0.

Conclusion

La cause fondamentale de cette attaque contre le protocole Truebit est un grave bug de débordement d’entier dans la logique de calcul du prix d’achat des tokens. Le contrat utilisant la version ^0.6.10 de Solidity et n’effectuant pas de contrôles de sécurité sur les opérations arithmétiques essentielles, il a finalement subi une perte importante de 8,535.36 ETH. Les nouvelles versions de Solidity atténuent déjà les vulnérabilités liées aux débordements. Cette attaque doit être considérée comme un cas où un pirate exploite l’IA pour analyser automatiquement d’anciens protocoles DeFi toujours en activité et y découvrir des vulnérabilités (notamment lors des récents piratages de Balancer et de yETH). Nous pensons que ces attaques pilotées par l’IA contre d’anciens protocoles DeFi seront plus fréquentes dans un avenir proche. Nous recommandons donc aux projets de faire réaliser de nouveaux audits de sécurité de leur code de contrat. En cas de vulnérabilités, ils devraient rapidement mettre à niveau le contrat ou transférer leurs actifs, maintenir une surveillance on-chain, détecter rapidement toute anomalie et limiter les pertes.

Cet article est une contribution externe et ne représente pas le point de vue de BlockBeats.

Prix de --

--
--
--

Ce contenu est fourni à titre informatif uniquement et ne constitue pas un conseil financier, d'investissement, juridique ou fiscal. Les événements, récompenses, promotions en ligne ou informations mentionnées ici ne doivent pas être considérés comme une recommandation, une sollicitation ou une invitation à acheter, vendre, trader ou effectuer toute autre opération sur des actifs crypto. Les actifs crypto sont très volatils et peuvent entraîner des pertes. La disponibilité des services, produits et événements liés à WEEX peut varier selon les régions. Veuillez vous assurer que votre participation respecte les lois et réglementations locales applicables.

Vous pourriez aussi aimer

iconiconiconiconiconiconiconicon
Assistance client:@weikecs
Collaborations commerciales:@weikecs
Trading quantitatif/Market makers:bd@weex.com
Programme VIP:support@weex.com