La bourse décentralisée SushiSwap a été victime d’un exploit qui a fait perdre plus de 3,3 millions de dollars à au moins un utilisateur, connu sur Twitter sous le nom de 0xSifu.
La vulnérabilité comprenait une faille liée à la permission dans le contrat RouterProcessor2 – ce que PeckShield et le chef de SushiSwap, Jared Gray, ont suggéré de révoquer toutes les chaînes.
Techniquement, la cause première, selon Ancilia, Inc. est que « dans la fonction interne swap(), swapUniV3() est appelée pour définir la variable lastCalledPool située à l’emplacement mémoire 0x00 ». Le Network Security Account ajoute « plus tard sur Bypass permission check in swap3callback function ».
Le premier attaquant a utilisé la fonction ‘yoink’ parce que le vecteur d’attaque était une faille dans le mécanisme d’approbation du contrat de routeur de l’échange de sushis », explique Brad Kay, analyste chez The Block Research, qui ajoute : « Le bogue permettait à des personnes non autorisées d’accéder à l’échange de sushis et d’obtenir des informations sur l’état de l’échange : « Le bogue permettait à des entités non autorisées d’utiliser le jeton sans l’approbation du propriétaire du jeton. Après la première attaque de 100 ETH – peut-être un chapeau blanc – un autre pirate semble avoir surgi et utilisé exactement le même contrat pour obtenir plus de 1800 ETH, mais a appelé sa fonction « notyoink » à la place.
@0xngmi de DeFi Llama affirme que seules les personnes ayant effectué des transactions sur SushiSwap au cours des quatre derniers jours seront affectées. Ils ont également publié une liste de contrats pour toutes les chaînes à révoquer.
Kevin Peng, analyste chez Block Research, explique que jusqu’à présent, 190 adresses Ethereum ont approuvé le contrat en question. Cependant, plus de 2 000 adresses sur la couche 2 Arbitrum ont apparemment approuvé ce mauvais contrat.
Dans l’heure qui a suivi la nouvelle, le prix du jeton de gouvernance de Sushi a chuté de seulement 0,6 %.
Cette histoire évolue et sera mise à jour avec plus d’informations.