Le 9 janvier au petit matin, une attaque soudaine a transformé un contrat déployé il y a cinq ans par Truebit Protocol en une "machine à sous" — l'attaquant a vidé en peu de temps 8 535,36 ETH du contrat, ce qui représentait environ 26,4 millions de dollars au prix de l'époque.
L'analyse de l'équipe de sécurité a levé le voile sur cet incident. La méthode d'attaque n'était pas complexe, mais extrêmement efficace.
**Voici comment l'attaque s'est déroulée :**
Tout d'abord, l'attaquant a utilisé la fonction getPurchasePrice() pour recueillir des informations sur le prix. Ensuite, il a ciblé une fonction présente dans le contrat présentant une faille, en lançant un appel avec un msg.value très faible. Comme le code du contrat n'était pas open source, une décompilation a permis de supposer que cette fonction comportait une vulnérabilité logique arithmétique — probablement une gestion incorrecte du troncature des entiers, permettant à l'attaquant de créer de toute pièce une grande quantité de tokens TRU.
Puis, étape cruciale : en utilisant la fonction burn, il a "revendu" ces tokens fabriqués de toutes pièces au contrat, en en retirant de l'ETH réel. Cette opération a été répétée 5 fois, avec une augmentation progressive du msg.value à chaque fois, aboutissant finalement à vider presque entièrement la réserve d'ETH du contrat.
Cet incident a lancé un avertissement à l'industrie — même pour un projet déployé il y a cinq ans, si la logique du contrat comporte des vulnérabilités et n'est pas mise à jour rapidement, il peut toujours devenir une cible pour les hackers.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
5 J'aime
Récompense
5
7
Reposter
Partager
Commentaire
0/400
HorizonHunter
· Il y a 10h
Ce genre d'erreur basique de troncature d'entiers n'a pas été corrigée en cinq ans, c'est vraiment incroyable… Le vieux projet a été ainsi chassé.
Voir l'originalRépondre0
RatioHunter
· 01-11 04:16
Vraiment nul, un vieux contrat de cinq ans peut encore fonctionner comme ça ? Une vulnérabilité aussi basique que la troncature d'entiers et personne ne l'a encore découverte, c'est risible
Voir l'originalRépondre0
ChainWallflower
· 01-09 11:54
Ça y est, même un contrat de cinq ans ne peut pas être maintenu, un bug aussi basique que la troncation d'entiers peut faire échouer, pas étonnant que tant de vieux projets soient devenus des distributeurs automatiques de retraits.
Voir l'originalRépondre0
SocialFiQueen
· 01-09 11:49
Mince, la vulnérabilité de troncature d'entiers peut encore durer cinq ans ? Truebit, c'est quoi cette paresse...
Voir l'originalRépondre0
RooftopVIP
· 01-09 11:48
Merde, un vieux projet de cinq ans peut encore être exploité de cette manière… vraiment sans voix, qui aurait pensé ça
Voir l'originalRépondre0
OvertimeSquid
· 01-09 11:48
Un contrat de cinq ans peut encore être exploité, c'est vraiment absurde. Pourquoi ce bug de débordement d'entier aussi basique n'a-t-il pas encore été corrigé ?
Voir l'originalRépondre0
GateUser-9ad11037
· 01-09 11:48
Un contrat non mis à jour depuis cinq ans et qui ose encore mettre autant d'ETH ? Ce n'est pas s'exposer soi-même aux hackers ?
Le 9 janvier au petit matin, une attaque soudaine a transformé un contrat déployé il y a cinq ans par Truebit Protocol en une "machine à sous" — l'attaquant a vidé en peu de temps 8 535,36 ETH du contrat, ce qui représentait environ 26,4 millions de dollars au prix de l'époque.
L'analyse de l'équipe de sécurité a levé le voile sur cet incident. La méthode d'attaque n'était pas complexe, mais extrêmement efficace.
**Voici comment l'attaque s'est déroulée :**
Tout d'abord, l'attaquant a utilisé la fonction getPurchasePrice() pour recueillir des informations sur le prix. Ensuite, il a ciblé une fonction présente dans le contrat présentant une faille, en lançant un appel avec un msg.value très faible. Comme le code du contrat n'était pas open source, une décompilation a permis de supposer que cette fonction comportait une vulnérabilité logique arithmétique — probablement une gestion incorrecte du troncature des entiers, permettant à l'attaquant de créer de toute pièce une grande quantité de tokens TRU.
Puis, étape cruciale : en utilisant la fonction burn, il a "revendu" ces tokens fabriqués de toutes pièces au contrat, en en retirant de l'ETH réel. Cette opération a été répétée 5 fois, avec une augmentation progressive du msg.value à chaque fois, aboutissant finalement à vider presque entièrement la réserve d'ETH du contrat.
Cet incident a lancé un avertissement à l'industrie — même pour un projet déployé il y a cinq ans, si la logique du contrat comporte des vulnérabilités et n'est pas mise à jour rapidement, il peut toujours devenir une cible pour les hackers.