La blockchain Terra a subi une faille importante impliquant un exploit complexe qui a entraîné le vol d'environ 5 millions de dollars en crypto-monnaies diverses. Les actifs spécifiques volés comprenaient environ 60 millions de jetons ASTRO, 3,5 millions d'USDC, 500 000 USDT et 2,7 BTC. Le cabinet d'audit de contrats intelligents Beosin a révélé la nature de la faille dans un article sur X, déclarant : « La blockchain Terra a été exploitée pour environ 60 millions de $ASTRO, 3,5 millions de $USDC, 500 000 $USDT et 2,7 $BTC.
Piratage et panne de la blockchain Terra : que s'est-il passé ?
Le chercheur en sécurité Rarma (@Rarma_) a confirmé via X : « Donc oui, il semble que ce soit l'exploit des hooks IBC d'avril. » En déployant et en utilisant un contrat CosmWasm malveillant via des interactions IBC, un attaquant a pu déclencher à plusieurs reprises le MsgTimeout dans le rappel OnTimeout du hook IBC avant la suppression de l'engagement du paquet. Sur les chaînes qui utilisent des hooks ibc pour intégrer ICS-20, cette faille pourrait permettre l'exécution récursive de la logique de rappel OnTimeout dans l'application de transfert. Cela peut conduire à des scénarios dans lesquels des fonds du compte séquestre sont perdus ou des jetons sont créés de manière inattendue.
La vulnérabilité, identifiée mais non corrigée depuis avril, a permis à l'attaquant de manipuler le processus de transfert IBC, en créant des jetons sur Terra à l'aide du mécanisme exploité, puis en les transférant hors de la plateforme. « Terra n'est pas corrigé, ce qui a permis à l'exploit de se produire. L'exploitant pourrait créer des jetons qui avaient été transférés IBC sur Terra en utilisant un contrat, un appel IBC (avec des hooks IBC) et un délai d'attente. 3,5 millions d'axlUSDC, 500 000 USDT, 2,7 BTC, 60 millions de jetons ASTRO. Terra et le relais IBC Neutron doivent s'arrêter », a ajouté Rarma.
Le chercheur a en outre précisé que « les actifs IBC ont été « re-frappés » avec cet exploit dans le portefeuille du pirate. Ils les ont ensuite transférés vers l'IBC. Les jetons « frappés » ont été « brûlés » à la sortie. Donc, du point de vue de la chaîne, de l'IBC et du relais, les quantités exploitées de ces jetons n'existent techniquement plus sur Terra. La TVL de ces jetons est complètement fausse. »
Notamment, le pirate a déjà sorti ses actifs volés, non pas via Cosmos, mais en les reliant à Ethereum et en les échangeant contre Ether (ETH).
En réponse à la faille de sécurité, l'équipe de développement a réagi rapidement en arrêtant la blockchain pour empêcher toute exploitation ultérieure. L'arrêt a été annoncé à la communauté avec des détails précis : « Veuillez noter que la chaîne sera bientôt arrêtée à la hauteur du bloc 11430400 et que les transactions ne seront pas traitées pendant cette période. Nous travaillerons avec les validateurs de Terra (phoenix-1) pour appliquer un correctif d'urgence par la suite afin de remédier à une exploitation suspectée. »
Environ quatre heures après l'arrêt, l'équipe de développement a déployé un correctif d'urgence pour corriger la vulnérabilité exploitée et renforcer les défenses de la blockchain. La mise à jour a été cruciale pour la reprise des activités normales de la blockchain : « La chaîne Terra a repris la production de blocs vers 4h19 UTC aujourd'hui, et la mise à niveau d'urgence de la chaîne est désormais terminée. Les transactions sont désormais en cours de traitement et les utilisateurs peuvent reprendre leurs activités normales. Les validateurs détenant plus de 67 % du pouvoir de vote sur Terra ont mis à niveau leurs nœuds pour empêcher que l'exploit ne se reproduise. D'autres validateurs devraient bientôt procéder à une mise à niveau. »
Au moment de la mise sous presse, LUNC s'échangeait à 0,00008039 $, en baisse de -3,3 % au cours des dernières 24 heures.
Image en vedette de Zipmex, graphique de TradingView.com