3ème piratage pour bZx – 8 millions $ extorqués
Jamais deux sans trois – En février dernier, le protocole bZx a subi deux exploitations de failles successives. Cette fois, la faiblesse du code de bZx coûte encore plus cher, avec plus de 8 millions de dollars de cryptos détournées.
Encore un nouveau trou dans le gruyère bZx
En février 2020, la plateforme bZx a connu, coup sur coup, deux « attaques » qui sont en fait des exploitations ingénieuses de prêts instantanés (flash loan) et de manipulation d’oracles de prix. Ces failles ont ainsi permis d’extirper respectivement 360 000 dollars et 645 000 dollars d’ethers (ETH) au protocole bZx.
Marc Thalen, ingénieur en chef chez Bitcoin.com, a été parmi les premiers à signaler cette nouvelle faille aux équipes de bZx.
« Hier soir [le 13 septembre], j’ai trouvé une faiblesse à BRZX. J’ai remarqué qu’un utilisateur était capable de dupliquer des « iTokens ». Il y avait plus de 20 millions de dollars en jeu. J’ai informé l’équipe en lui disant d’arrêter le protocole et je lui ai expliqué l’exploit. »
1/4 Last night I found an exploit in BRZX. I noticed that a user were capable of duplicating “i tokens”. There was 20+ million $ at risk. I informed the team telling them to stop the protocol and explained the exploit to them. At this point none of the founders were up.. pic.twitter.com/MdJqOH2IPu
— 0xCommodity (@0xCommodity) September 14, 2020
Marc Thalen explique, preuves à l’appui, avoir lui-même testé cette faille. Il a ainsi pu transformer 100 dollars de stablecoins en 200 dollars ! Mais le mal avait déjà été fait…
LINK, ETH, stablecoins : une razzia de 8 millions de $
Le code défectueux, qui permettait effectivement de dupliquer des actifs grâce aux iTokens du protocole bZx, a laissé un attaquant repartir avec :
- 219 000 LINK, environ 2,5 millions de dollars ;
- 4 503 ethers (ETH) soit 1,6 million de dollars ;
- 1,7 million d’USDT ;
- 1,4 million d’USDC ;
- 668 000 DAI.
Dans une publication sur leur blog, les équipes de bZx n’explique pas comment une telle faille a pu passer à travers deux audits.
« Le protocole a fait l’objet d’audits approfondis par les grandes sociétés de sécurité Peckshield et Certik. »
Cette fuite de 8 millions de dollars de cryptos représente 30% de la valeur totale des actifs verrouillés (ou « TVL ») dans le protocole bZx. Les actifs des utilisateurs ne seraient cependant pas affectés, car les sommes perdues auraient été compensées par le fonds d’assurance de bZx (on n’aimerait cependant pas être à la place de l’assureur !).
D’après Anton Bukov, cofondateur de l’exchange 1inch, il semble même que le désastre ait pu être plus grand encore. L’attaquant aurait en effet accumulé 153,6 millions d’iUSDT avant de commencer à drainer les USDT du pool d’échange. Mais les équipes de bZx aurait détruit 151,9 millions d’iUSDT (par burn) en voyant ce mouvement. Ce qui explique la fuite finale de « seulement » 1,7 million d’USDT.
UPDATE: We found out, that someone discovered this vulnerability 2 days ago, increased own balance to 153.6M $iUSDT and started draining from $USDT pool until 151.9M $iUSDT were burned by @bZxHQ "admin": https://t.co/Py17TWkNNK It seems like $1.7M were stolen 🤔 https://t.co/1H7psB4Dk3 pic.twitter.com/umbJ09Br64
— Anton Bukov (e/acc)🦇🔊 (@k06a) September 13, 2020
Nous venons peut-être de passer à deux doigts d’un scandale d’une plus grande ampleur pour ce protocole DeFi. L’intégralité des cryptos dans le protocole aurait potentiellement pu être siphonnées. Cette implémentation d’une « porte dérobée » dans le smart contract, qui a permis temporairement aux développeurs de bZx de détruire les iTokens, risque elle aussi de faire jaser pour son côté plus centralisé que décentralisé.