L’agrégateur d’échange multichaîne Dexible a été touché par un exploit, et 2 millions de dollars de crypto-monnaie ont été perdus en conséquence, selon un rapport post-mortem du 17 février publié par l’équipe sur le serveur Discord officiel du projet.
À partir de 18h35 UTC le 17 février, le frontal Dexible affiche un avertissement contextuel sur le piratage chaque fois que les utilisateurs y accèdent.
À 6 h 17 UTC, l’équipe a signalé qu’elle avait découvert « un piratage potentiel sur les contrats Dexible v2 » et enquêtait sur le problème. Environ neuf heures plus tard, il a publié une deuxième déclaration indiquant qu’il savait désormais que « 2 047 635,17 $ ont été exploités à partir de 17 adresses de commerçants. 4 sur le réseau principal, 13 sur arbitrum.
Un rapport post-mortem a été publié à 16h00 UTC sous forme de fichier PDF et publié sur Discord, et l’équipe a déclaré qu’elle « travaillait activement sur un plan de remédiation ».
Dans le rapport, l’équipe déclare qu’elle avait remarqué que quelque chose n’allait pas lorsque l’un de ses fondateurs avait retiré 50 000 $ de crypto de son portefeuille pour des raisons inconnues à l’époque. Après enquête, l’équipe a découvert qu’un attaquant avait utilisé la fonction selfSwap de l’application pour déplacer plus de 2 millions de dollars de crypto auprès d’utilisateurs qui avaient précédemment autorisé l’application à déplacer leurs jetons.
La fonction selfSwap permettait aux utilisateurs de fournir l’adresse d’un routeur et les données d’appel associées pour effectuer un échange d’un jeton contre un autre. Cependant, aucune liste de routeurs pré-approuvés n’était écrite dans le code. Ainsi, l’attaquant a utilisé cette fonction pour acheminer une transaction de Dexible vers chaque contrat de jeton, déplaçant les jetons des utilisateurs de leurs portefeuilles vers le propre contrat intelligent de l’attaquant. Étant donné que ces transactions malveillantes provenaient de Dexible, que les utilisateurs avaient déjà autorisé à dépenser leurs jetons, les contrats de jetons ne bloquaient pas les transactions.
En rapport: L’influenceur NFT est victime d’une cyberattaque et perd plus de 300 000 $ CryptoPunks
Après avoir reçu les jetons dans son propre contrat intelligent, l’attaquant a retiré les pièces via Tornado Cash dans des portefeuilles BNB (BNB) inconnus.
Dexible a suspendu ses contrats et a exhorté les utilisateurs à révoquer les autorisations de jeton pour eux.
La pratique courante consistant à autoriser les approbations de jetons pour de gros montants a parfois entraîné des pertes pour les utilisateurs de crypto en raison de contrats bogués ou carrément malveillants, ce qui a conduit certains experts à avertir les utilisateurs de révoquer régulièrement les approbations. Les frontaux de la plupart des applications Web3 ne permettent pas directement aux utilisateurs de modifier le nombre de jetons approuvés, de sorte que les utilisateurs perdent souvent le solde total de leurs jetons si une application s’avère avoir une faille de sécurité. MetaMask et d’autres portefeuilles ont tenté de résoudre ce problème en permettant aux utilisateurs de modifier les approbations de jetons à l’étape de confirmation du portefeuille, mais de nombreux utilisateurs de crypto ne sont toujours pas conscients du risque de ne pas utiliser cette fonctionnalité.