Popsicle Finance - REKT



Fonte.

~20 millions de dollars se sont liquéfiés.

Un hack complexe d'un simple bug place Popsicle Finance dans une bien poisseuse situation.

Le bug RewardDistribution a déjà fait l'objet de divers exploits au sein de différents protocoles.

Les auditeurs et les développeurs de smart contracts doivent rester à jour. Ce code n'aurait pas dû être mis en production.

Si seulement il y avait un endroit où ils pourraient se documenter sur les hacks et les exploits antérieurs...

Source : @Peckshield & @Mudit__Gupta

Adresse de l'assaillant : 0xf9E3D08196F76f5078882d98941b71C0884BEa52

Hash de la transaction : 0xcd7dae143…

Le contrat "Sorbetto Fragola" gère automatiquement la liquidité sur Uniswap V3. Fragola ajuste la position pour qu'elle se situe toujours dans la bonne fourchette.

Le hack est dû à l'absence de comptabilisation correcte des frais lors du transfert des LP tokens.

L'assaillant, plus exactement, crée trois contrats : A, B et C et répète les séquences suivantes :

A.deposit(),

A.transfer(B),

B.collectFees(),

B.transfer(C),

C.collectFees() pour huit pools.

Étape 1 : Flashloan de 30M USDT, 13K WETH, 1.4KBTC, 30M USDC, 3M DAI et 200K UNI de Aave pour attaquer huit pools PLP.

Nous prenons ci-dessous la pool USDT-WETH comme exemple.

Étape 2 : Alice call deposit() pour ajouter 30M USDT et 5.467K WETH de liquidité dans la pool PLP USDT-WETH et obtient 10.51 PLP tokens.

Étape 3 : A transfère les 10.52 PLP tokens à B.

Étape 4 : B call la fonction collectFees() pour mettre à jour ses tokensRewards.

Étape 5 : B transfère les 10.52 PLP tokens à C.

Étape 6 : C call la fonction collectFees() pour mettre à jour ses tokenRewards.

Étape 7 : C transfère à nouveau les 10.52 PLP tokens à A, afin que A puisse retirer les liquidités ultérieurement.

Étape 8 : A call withdraw() pour retirer les liquidités et récupère 30M USDT et 5.46 WETH.

Étape 9 : B call collectFees() pour obtenir 2.15M USDT et 392 WETH comme récompenses.

Étape 10 : C call collectFees() pour obtenir 2.15 M USDT et 402 WETH en récompense.

Étape 11 : L'assaillant répète les étapes 2 à 10 pour plusieurs autres pools PLP et rembourse le flashloan de l'étape 1.

Une partie des bénéfices de l'attaque (4 100 ETH, environ 10 millions de dollars) est immédiatement déposée sur Tornado Cash.

Au moment de la rédaction de cet article, les 2 560 WETH, 96 WBTC et 159 928 DAI restants se trouvent toujours sur le compte de l'assaillant : 0xf9E3D08196F76f5078882d98941b71C0884BEa52.

Tout le monde fait des erreurs, mais peu sont responsables de 20 millions de dollars de TVL…

Il est assez étrange que Peckshield ait décidé de publier un post-mortem du code qu'ils ont audité, au lieu d'attendre et de le publier comme un communiqué officiel du compte Popsicle.

Alors que les fonds d'un autre client sont perdus, Peckshield tente de gagner de l'influence sur Twitter.

Il est difficile de trouver des excuses pour des auditeurs qui omettent un bug déjà connu.

Mais ils ont tout de même écrit un post-mortem sympathique : Popsicle Finance en aura au moins eu pour son argent.


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.