Beanstalk - REKT



Si 181 millions de dollars ont été subtilisés à Beanstalk, seulement 76 millions ont été conservés par l'assaillant.

rekt.news recense les pertes, mais pas les profits : c'est donc la cinquième place du classement qui est attribuée à cette attaque.

Une proposition de gouvernance malveillante a été soumise grâce à un flash loan, puis l'assaillant a voté pour transférer tous les actifs à lui-même.

Voilà ~24800 nouveaux ETH transférés vers Tornado Cash, et 250K d'argent volé vers le fonds de guerre ukrainien.

Pendant combien de temps encore cette vague de crime peut-elle durer ?

Source : Igor Igamberdiev, Peckshield, Kelvin Fichter.

Ce fut une attaque de gouvernance rendue possible par l'utilisation de flash loans combinée à l'absence de délai sur l'exécution des propositions.

L'assaillant a temporairement acquis suffisamment de pouvoir de vote pour exécuter immédiatement une proposition de gouvernance d'urgence malveillante, ce qui a permis de vider le protocole.

Bien que l'attaque ait été instantanée, une certaine préparation à elle été nécessaire :

...il y a un délai d'environ 1 jour pour toutes les actions de gouvernance dans le contrat $BEAN. L'assaillant a en fait mis tout cela en place hier lorsqu'il a fait deux propositions de gouvernance.

La première proposition (la proposition #18) vole tout l'argent du contrat. La proposition suivante (proposition #19) envoie 250 000 $ de $BEAN à l'adresse de donation en Ukraine. Cette proposition pour l'Ukraine est nommée Bip18 (au lieu de Bip19)...

Une fois le délai écoulé, l'assaillant a pu s'exécuter :

L'exploiteur a été financé par le bridge de Synapse Protocol [mais initialement par Tornado].

Il a utilisé un flash loan pour obtenir :

350M DAI, 500M USDC, et 150M USDT depuis Aave ;

32M BEAN de la part d'Uniswap v2 ;

11.6M LUSD de SushiSwap.

Ces tokens ont été utilisés pour ajouter de la liquidité aux pools de Curve avec des BEAN pour le vote de la gouvernance.

Il a ensuite déployé et voté pour un faux BIP-18 qui transférait tous les fonds du contrat de protocole à l'exploiteur.

Il restait alors à récupérer les liquidités, à rembourser les flash loans et à convertir tous les fonds reçus en 24,8k WETH (76 millions de dollars), lesquels sont allés vers Tornado Cash.

Hacker : 0x1c5dcdd006ea78a7e4783f9e6021c32935a10fb4

Contrat du hacker : 0x79224bc0bf70ec34f0ef56ed8251619499a59def

BIP18 : 0xe5ecf73603d98a0128f05ed30506ac7a663dbb69

Tx de la proposition BIP18 : 0x68cdec0ac76454c3b0f7af0b8a3895db00adf6daaf3b50a99716858c4fa54c6f

Peckshield a publié une description détaillée de la situation.

Le hacker propose une proposition malveillante BIP avec initAddress

Tx de lancement du hack : 0xcd314668aaa9bbfebaf1a0bd2b6553d01dd58899c508d4729fa7311dc5d33ad7

  1. Flashloan 350.000.000 DAI, 500.000.000 USDC, 150.000.000 USDC, 32.425.202 BEAN, et 11.643.065 LUSD

  2. Vyper_contract_bebc.add_liquidity 350,000,000 DAI, 500,000,000 USDC, 150,000,000 USDT pour obtenir 979,691,328 3Crv

  3. LUSD3CRV-f.exchange pour convertir 15.000.000 3Crv en 15, 251.318 LUSD

  4. BEAN3CRV-f.add_liquidity pour convertir 964 691 328 3Crv en 795 425 740 BEAN3CRV-f

  5. BEANLUSD-f.add_liquidity pour convertir 32.100.950 BEAN et 26.894.383 LUSD et obtenir 58.924.887 BEANLUSD-f

  6. Dépôt de 795 425 740 BEAN3CRV-f et 58 924 887 BEANLUSD-f dans Diamond

  7. Diamant.vote (bip=18)

  8. Diamond. emergencyCommit(bip=18) et le contrat _init proposé par le hacker est exécuté afin d'obtenir 36 084 584 BEAN et 0,54 UNI-V2_WETH_BEAN, 874 663 982 BEAN3CRV-f, 60 562 844 BEANLUSD-f pour le contrat du hacker.

  9. BEAN3CRV-f.remove_liquidity_one_coin 874.663.982 BEAN3CRV-f pour obtenir 1.007.734.729 3Crv

  10. BEANLUSD-f.remove_liquidity_one_coin 60,562,844 BEANLUSD-f pour obtenir 28,149,504 LUSD

  11. Flashloan back LUSD 11,795,706 et BEAN 32,197,543

  12. LUSD3CRV-f.exchange pour échanger 16.471.404 LUSD contre 16.184.690 3Crv

  13. Burn 16,184,690 3Cry pour obtenir 522,487,380 USDC, 365,758,059 DAI, et 156,732,232 USDT

  14. Flashloan pour récupérer 150 135 000 USDT, 500 450 000 USDC, 350 315 000 DAI.

  15. Burn UNI-V2_WETH_BEAN 0.54 pour obtenir 10,883 WETH et 32,511,085 BEAN.

  16. Don de 250,000 USDC à l'Ukraine Crypto Donation

  17. Swap de 15 443 059 DAI contre 15 441 256 USDC

  18. Swap 37, 228,637 USDC à 11,822 WETH

  19. Swap 6, 597,232 USDT à 2,124 WETH

  20. Le bénéfice de 24 830 WETH est envoyé au hacker.

Et puis sur Tornado.

Sans doute pour éviter tout soupçon de complot interne, Publius, l'anon à l'origine du protocole, a pris la décision de révéler son identité en tant que groupe de trois dans une déclaration publiée sur Discord.

Omniscia tient à préciser que cette attaque n'entrait pas dans le cadre de son audit, bien que son rapport contienne des commentaires sur le contrat de gouvernance.

Quoi qu'il en soit, il est surprenant qu'une telle vulnérabilité n'ait pas été remarquée à un moment donné, étant donné que les flash loans ne constituent pas une nouvelle menace pour la gouvernance en DeFi. Un retard dans l'exécution des propositions de gouvernance on-chain est un des moyens d'éviter cela.

Cet incident pourrait inciter les bagholders à surveiller de plus près les propositions de gouvernance.

Toutefois, l'utilisateur moyen peut s'attendre à ce que des projets aussi importants que Beanstalk soient sous la surveillance d'yeux plus expérimentés.

DYOR


partager cet article

REKT sert de plateforme publique pour des auteurs anonymes, nous déclinons toute responsabilité quant aux opinions ou contenus hébergés sur REKT.

faites un don (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

avertissement:

REKT n'est responsable en aucune manière du contenu publié sur notre site Web ou en lien avec nos Services, qu'il soit publié ou occasionné par l'Auteur Anon de notre site Web, ou par REKT. Bien que nous fournissions des règles pour la conduite et les publications de l'Auteur Anon, nous ne contrôlons pas et ne sommes pas responsables de ce que l'Auteur Anon publie, transmet ou partage sur notre site Web ou nos Services, et ne sommes pas responsables de tout contenu offensant, inapproprié, obscène, illégal ou autrement répréhensible que vous pourriez rencontrer sur notre site Web ou nos Services. REKT ne saurait être tenu responsable de la conduite, en ligne ou hors ligne, de tout utilisateur de notre site Web ou de nos services.