Voltage Finance - REKT



Voltage Finance a été exploité pour environ 4 millions de dollars via son partenaire de "Lending-as-a-ServiceOla Finance sur Fuse Network.

Plus qu'un fork de Compound, Ola se décrit comme "un fournisseur de technologie qui permet à d'autres de build des services de type Compound".

Un incident similaire sur la chaîne Gnosis / xDAI, survenu au début du mois, a donné aux équipes utilisant le code de Compound de nombreux avertissements.

Pourtant, pour une raison ou une autre, ni Voltage ni Ola n'ont eu vent de la nouvelle.

Si seulement il y avait un endroit où les développeurs pouvaient se tenir au courant des exploits de DeFi…

Comme ce fut le cas pour Agave DAO et Hundred Finance, cet exploit est dû à une vulnérabilité de type réentrance dans la norme ERC 677 que Fuse Network utilise pour les tokens bridgés.

Ces types de tokens comprennent une fonction callAfterTransfer() qui peut être utilisée de manière abusive pour effectuer des transferts supplémentaires avant que les soldes ne soient mis à jour (à condition que le code sous-jacent ne suive pas la routine d'exécution recommandée checks-effects-interactions).

Le code original de Compound ne suit pas ce modèle, mais tous les tokens de collatéral proposés sont examinés pour détecter cette vulnérabilité avant d'être ajoutés au protocole.

Crédit : BlockSecTeam

Adresse de l'assaillant sur Fuse : 0x371D7C9e4464576D45f11b27Cf88578983D63d75

Exemple de tx (BUSD) : 0x1b3e06b6b310886dfd90a5df8ddbaf515750eda7126cf5f69874e92761b1dc90

Contrat de l'assaillant A : 0x632942c9BeF1a1127353E1b99e817651e2390CFF

Contrat de l'assaillant B : 0x9E5b7da68e2aE8aB1835428E6E0c83a7153f6112

1 : Le contrat A transfère 550 WETH au contrat B.

2 : Le contrat B dépose 550 WETH, mintant 27 284 oWETH.

3 : Le contrat B emprunte 507 216 BUSD

4 : Le contrat BUSD calls back le contrat B via callAfterTransfer().

5 : Le contrat B transfère 507 216 BUSD et 27 284 oWETH au contrat A.

6 : Le contrat A retourne 27 284 oWETH pour racheter le dépôt initial de 550 WETH et garde les 507 216 BUSD comme profit.

Comme l'explique BlockSecTeam :

Dans la logique du code de la fonction borrow(), les états internes connexes sont mis à jour après un appel externe. Plus précisément, la fonction doTransferOut() invoquera la fonction transfer() du token basé sur ERC677, ce qui conduira finalement à un call externe.

Le processus ci-dessus a été utilisé à plusieurs reprises pour prendre $USDC, $FUSD, $WBTC, $WETH et $FUSE.

Les fonds ainsi générés ont d'abord été transférés vers Ethereum (financé à l'origine par Tornado Cash), puis envoyés à cette adresse, où ils demeurent toujours sous forme de ETH, WBTC, USDC (Circle va-t-il geler ces fonds ?) et FUSE, le tout pour une valeur d'environ 3,1 millions de dollars.

Quand Agave et Hundred ont été victimes du même vecteur d'attaque, nous avions alors écrit :

Quand un fork tombe, toutes les autres doivent alors vérifier leurs fondations.

Voltage Finance ne l'a pas fait, et voilà qu'ils se retrouvent à la 64e place du classement.


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.