Fais dodo, perds tes cryptos – Ils font sauter la banque sur Ethereum et volent 3,8 millions de $ en un clic !

Le dodo s’est fait voler dans les plumesLa plateforme d’échange décentralisée DodoDEX a été la cible de 2 attaques. Au total, 3,8 millions de dollars ont disparu des pools du protocole, visiblement en plein sommeil léthargique.

3,8 millions de dollars envolés

Très tôt ce matin, un peu avant 2 heures du matin en France, plusieurs acteurs de l’écosystème DeFi ont tiré la sonnette d’alarme. Il semblerait que la plateforme d’échange décentralisée DodoDEX ait été la cible d’une attaque.

Moins d’une heure après, la nouvelle a été confirmée par les équipes de l’échange.

Dans les faits, l’attaquant a réussi à exploiter plusieurs V2 Crowdpools, lancées il y a moins de 2 semaines, à savoir les pools WSZO, WCRES, ETHA et FUSI. Les pools héritées de la V1 du protocole et les autres pools proposées n’ont, quant à elles, pas été impactées.

Au total, les équipes déplorent une perte de 3,8 millions de dollars et sont actuellement en train d’enquêter, grâce à l’aide de Paradigm, Peckshield, 1inch Exchange ou encore les développeurs de la Binance Smart Chain.

2 attaques pour le prix d’une

Après plusieurs heures d’investigation, les équipes de DodoDEX ont publiés un premier post-mortem de l’attaque. Nous y découvrons que le protocole n’a pas été attaqué par un, mais bien 2 attaquants différents.

Les attaquants ont profité d’un bug sur les smart contracts des V2 Crowdpools, permettant d’appeler la fonction init à plusieurs reprises.

Les attaquants ont procédé de la manière suivante :

  1. L’attaquant a créé un jeton contrefait et a initialisé le contrat intelligent avec celui-ci, en appelant la fonction init() ;
  2. L’attaquant a appelé la fonction sync() en définissant 0 pour la variable « reserve », qui représente le solde du jeton ;
  3. L’attaquant a appelé de nouveau init() pour réinitialiser l’ensemble – cette fois avec un « vrai » jeton (c’est-à-dire des jetons dans les pools de DODO) ;
  4. L’attaquant a contracté un flash loan pour transférer tous les jetons réels des pools et contourner le contrôle du flash loan.

Comme nous l’avons abordé précédemment, 2 attaquants ont mené l’attaque en parallèle.

Nous avons d’un côté, l’individu A, qui a exploité la pool WCRES. Ce dernier a d’ores et déjà contacté les équipes du protocole et s’est engagé à rembourser les 1,8 millions qu’il a dérobés. Cela réduit les pertes à 2 millions de dollars.

De l’autre côté, il y a l’individu B… ou plutôt le bot B, car il s’agit d’un smart contract. Il y a de grandes chances qu’il s’agisse d’un bot de front running, qui a tenté de devancer l’attaquant A et s’est retrouvé à exploiter les pools ETHA, WSZO et vETH. Silence radio de ce côté-là !

Évidemment, les failles ont depuis été corrigées, et la situation est revenue à la normale. Cependant, 2 millions de dollars restent introuvables pour le moment.

Renaud H.

Ingénieur en software et en systèmes distribués de formation, passionné de cryptos depuis 2013. Touche à tout, entre mining et développement, je cherche toujours à en apprendre plus sur l’univers des cryptomonnaies et à partager le fruit de mes recherches à travers mes articles.