Un développeur récupère 2 millions de dollars bloqués dans le contrat de l’ICO HongCoin de 2016

ETH-1,34%
EUL1,18%

Un développeur connu sous le nom de Florent a récupéré environ 1 003 ETH, d'une valeur d'environ 2 millions de dollars aux prix actuels, provenant d'un contrat d'offre initiale de tokens (ICO) HongCoin de 2016, dans lequel les fonds étaient bloqués depuis neuf ans. La vente de tokens Ethereum avait été conçue pour auto-rembourser les investisseurs après être passée à côté de son objectif de collecte, mais un bug de programmation a empêché la fonction de remboursement de s'exécuter pour les détenteurs dont les soldes dépassaient un compteur global épuisé. Florent a exploité une vulnérabilité de dépassement de capacité (overflow) dans la fonction admin du contrat, en collaboration avec l'équipe HongCoin pendant environ une semaine afin de débloquer les fonds pour 48 investisseurs initiaux. Cette récupération montre comment d'anciennes vulnérabilités de smart contracts, antérieures à SafeMath, continuent de verrouiller de la valeur on-chain.

Overflow : la vulnérabilité a bloqué les remboursements pendant neuf ans

Le contrat HongCoin, présenté en 2016 comme un fonds d'investissement géré par la communauté, contenait un mécanisme de remboursement qui rejetait tout détenteur dont le solde dépassait une variable de compteur global. Des années de remboursements partiels ont réduit ce compteur à 356, plafonnant les remboursements totaux à 3,56 ETH (environ 7 000 dollars), tandis que la plupart des détenteurs restants détenaient des montants bien plus élevés.

Florent a déclaré à The Block que le contrat avait été déployé avec une ancienne version du langage de programmation Solidity, qui ne disposait pas de protections contre les erreurs de dépassement de capacité (overflow). Dans ce type d'erreurs, un nombre atteignant une valeur suffisamment élevée repasse à 0 ou 1, une vulnérabilité ensuite traitée par la bibliothèque SafeMath.

Le développeur a identifié une solution de contournement via la fonction admin de l'équipe, initialement conçue pour émettre des tokens de bounty pour des événements spécifiques. En appelant cette fonction avec une valeur d'entrée précise, il a pu réinitialiser le solde d'un détenteur à 1, ce qui a permis de faire passer le contrôle de remboursement et de libérer l'ETH bloqué.

La coopération de l'équipe a permis un processus de déblocage whitehat

La fonction admin était limitée au portefeuille multisig de HongCoin, empêchant toute action unilatérale. Florent a envoyé un e-mail à l'équipe, a validé la séquence des transactions sur une fourche (fork) de Foundry mainnet, puis l'équipe a signé les transactions de déblocage. Le processus a pris environ une semaine à partir du premier e-mail, selon Florent.

Sur les 48 investisseurs initiaux pouvant désormais réclamer des fonds, 41 avaient eu besoin de l'exploit de réinitialisation du solde. Les sept autres détenaient des montants suffisamment faibles pour être remboursés directement via la fonction existante. L'équipe a signé 41 transactions, une par détenteur bloqué, couvrant les environ 1 000 ETH qui étaient réellement coincés.

Deux investisseurs ont récupéré un total combiné de 96,5 ETH (environ 193 000 dollars) et ont envoyé volontairement à Florent une récompense whitehat. Florent a indiqué à The Block qu'il n'y avait aucun frais, aucune part, ni aucune commission. « En dehors de l'équipe elle-même, personne n'avait vraiment d'incitation à creuser le contrat aussi finement », a déclaré Florent. « Il n'y avait pas de faille de propriété qui permettrait à quelqu'un de voler les fonds pour lui-même ; donc, pour un hacker, il n'y avait rien à gagner : le seul résultat d'un quelconque exploit est que l'ETH retourne aux investisseurs initiaux. »

Le développeur avait déjà libéré 19,329 ETH d'autres contrats défaillants

Le dimanche 24 mai, Florent a décrit une récupération de 19,329 ETH, soit environ 40 590 dollars, provenant de deux contrats plus anciens. Le premier était un ICO raté de janvier 2018 ayant 5,141 ETH derrière une fonction publique de remboursement jamais appelée. Le second impliquait des swaps atomiques expirés d'un utilisateur de Liquality Wallet, au nombre de sept, totalisant 14,190 ETH ; Florent a remboursé ces montants pour le compte de l'utilisateur après que Liquality a fermé son application en 2024.

Une méthodologie de scanner identifie des contrats bloqués de grande valeur

Florent a déclaré qu'il avait récemment configuré un nœud Ethereum auto-hébergé et construit un scanner pour signaler chaque contrat détenant plus de 100 ETH, puis il a travaillé à partir des candidats. « Beaucoup de contrats sont des forks d'autres contrats, donc une faille dans l'un est la même faille dans tous les autres au sein de ce cluster », a déclaré Florent. « Cela dit, les grands clusters connus ont déjà été passés au peigne fin assez en profondeur. »

Interrogé sur l'aide de l'IA, Florent a déclaré avoir utilisé Claude Code pour accélérer le tri et le regroupement des contrats, mais a constaté des limites dans l'analyse des smart contracts. « L'IA est souvent biaisée par le fait que le contrat n'a pas encore été craqué auparavant, et que les personnes précédentes n'ont pas trouvé de solution... donc elle retombe souvent par défaut sur “c'est incraquable, j'ai tout essayé”, ce qui est fréquemment faux. »

La récupération intervient dans un contexte de vague d'exploits DeFi. Les attaques ont totalisé des centaines de millions de dollars rien que sur avril, menées par un détournement d'environ 293 millions de dollars sur Kelp DAO. Un cofondateur de la société de sécurité OpenZeppelin a récemment déclaré qu'il considère tout le DeFi comme non sûr. Certains exploits se sont terminés par des récupérations whitehat ou des retours volontaires, comme la récupération quasi totale après l'exploit de 2023 sur Euler Finance.

« Il y a eu une résurgence claire de hackers sur les protocoles ces derniers temps, et le DeFi devient un espace compliqué pour investir », a déclaré Florent. « J'aimerais voir un mouvement de contre-courant de personnes qui essaient de protéger les choses plutôt que de les exploiter. C'est plus gratifiant moralement, et ça peut aussi bien payer. »

FAQ

Qu'est-ce qui a causé le blocage des fonds de l'ICO HongCoin pendant neuf ans ?

Un bug de programmation dans la fonction de remboursement du contrat HongCoin de 2016 a rejeté tout détenteur dont le solde de tokens dépassait une variable de compteur global. Des années de remboursements partiels ont réduit ce compteur à 356, empêchant les remboursements pour les détenteurs ayant des soldes plus élevés, tandis que le contrat ne disposait pas des protections contre les dépassements de capacité (overflow) standard dans les versions ultérieures de Solidity.

Comment Florent a-t-il débloqué l'ETH piégé sans le voler ?

Florent a identifié une fonction admin initialement conçue pour émettre des tokens de bounty. En l'appelant avec une valeur d'entrée spécifique, il pouvait réinitialiser le solde d'un détenteur à 1 grâce à une vulnérabilité de dépassement de capacité (overflow), ce qui a permis de faire passer le contrôle de remboursement. La fonction admin nécessitait des signatures de l'équipe HongCoin, donc Florent a coordonné avec l'équipe pendant environ une semaine pour exécuter 41 transactions de déblocage pour les investisseurs bloqués.

Combien d'ETH Florent a-t-il récupéré depuis d'anciens contrats ?

Florent a récupéré environ 1 003 ETH (environ 2 millions de dollars) depuis le contrat HongCoin. Le dimanche 24 mai, il a décrit avoir libéré en plus 19,329 ETH (environ 40 590 dollars) depuis deux autres contrats : un ICO raté de janvier 2018 avec 5,141 ETH, et sept swaps atomiques expirés de Liquality Wallet totalisant 14,190 ETH.

Avertissement : Les informations figurant sur cette page peuvent provenir de sources tierces et sont fournies à titre indicatif uniquement. Elles ne reflètent pas les points de vue ou opinions de Gate et ne constituent pas un conseil financier, d’investissement ou juridique. Le trading des actifs virtuels comporte des risques élevés. Veuillez ne pas vous fonder uniquement sur les informations de cette page pour prendre vos décisions. Pour en savoir plus, consultez l’avertissement.
Commentaire
0/400
Aucun commentaire