Term Labs a récupéré toutes les positions de prêt à taux fixe détenues dans les coffres affectés par son exploit de gouvernance d'août, la dernière position ayant été déplacée le 25 août alors que les Meta Vaults et les stratégies affectées restent fermées.
Résumé
- Term Labs a récupéré toutes les positions de prêt à taux fixe affectées d'ici le 25 août, tandis que ses Meta Vaults et les stratégies affectées restent fermées.
- Les attaquants ont utilisé des propositions de gouvernance malveillantes pour supprimer les délais d'exécution avant de drainer l'ETH et l'USDC liquides des stratégies de coffre.
- Un jeton de repo contrefait a été évalué par rapport au solde exact d'USDC liquide de chaque stratégie, permettant à l'attaquant de balayer les fonds disponibles.
- Term Labs a déclaré que ses contrats V1 et V2 n'ont pas été compromis, et que ses marchés directs d'emprunt et de prêt sont restés opérationnels.
Term Labs a déclaré dans son dernier rapport d'incident que la dernière position à taux fixe a été récupérée à 14h52 UTC le 25 août, tandis que son enquête a révélé que l'attaque était limitée aux soldes liquides détenus dans les coffres de Term.
Le protocole a déclaré que ses contrats V1 et V2 n'ont pas été compromis et que ses marchés directs d'emprunt et de prêt ont continué à fonctionner tout au long de l'incident.
Term Labs affirme que les contrats de prêt ont échappé à l'exploit du coffre
Le nouveau compte technique donne une image plus détaillée de l'attaque du 23 août, que les sociétés de sécurité avaient précédemment estimée avoir drainé environ 8,5 millions de dollars des coffres de Term Finance.
Term Labs avait initialement divulgué un exploit de gouvernance affectant les coffres sans fournir la séquence complète de l'attaque. Les sociétés de sécurité CertiK et PeckShield ont estimé les pertes à près de 8,5 millions de dollars, y compris environ 2 843 ETH et 1,68 million d'USDC. PeckShield a déclaré que l'USDC avait ensuite été échangé contre environ 1,68 million de DAI.
Le protocole a ensuite fermé ses Meta Vaults et révoqué leurs rôles de gouvernance DAO. Les nouveaux dépôts ont été définitivement désactivés tandis que les retraits restaient disponibles. Yearn a déclaré à l'époque que les contrats affectés utilisaient l'infrastructure Yearn V3 mais que l'attaque impliquait un wrapper de gouvernance développé pour Term plutôt que des coffres standard Yearn V3.
Term Labs affirme maintenant que son système de prêt à taux fixe sous-jacent est resté hors de portée de l'attaquant. Les fonctions d'approvisionnement, de remboursement et de liquidation ont continué à fonctionner sans interruption dans ses marchés directs de prêt.
L'attaque s'est plutôt développée à travers deux portefeuilles d'opérateur financés via Tornado Cash et une série de propositions de gouvernance qui ont modifié les contrôles autour des stratégies de coffre de Term.
Le premier opérateur a reçu des fonds via Tornado Cash le 17 août. Environ 24 minutes plus tard, le portefeuille a soumis une proposition ETH intitulée « Votez OUI pour VETO les changements de paramètres de coffre proposés par le curateur. »
Parmi les changements inclus dans la proposition figurait une réduction du délai de gouvernance de la pile affectée à zéro. Term Labs a déclaré que le changement supprimait une période supplémentaire de sept jours et d'une heure pendant laquelle les fournisseurs de liquidité auraient pu arrêter la proposition avant son exécution.
Les attaquants ont préparé des campagnes ETH et USDC séparées
Un deuxième portefeuille d'opérateur a reçu un financement Tornado Cash le 18 août avant de déployer un contrat singleton plus tard dans l'après-midi.
Selon Term Labs, le contrat combinait trois fonctions en un seul déploiement : un contrôleur, un adaptateur de prix et un jeton de repo contrefait. Un contrat d'assistance a ensuite été initialisé en utilisant le singleton.
Trois jours plus tard, le 21 août, l'assistant a soumis sept propositions de gouvernance et a voté seul sur celles-ci.
Deux propositions ciblaient les DAO de stratégie ETH mais n'ont jamais été exécutées. Les cinq autres ont fait partie de l'attaque USDC.
Chacune des cinq propositions a réduit le délai de gouvernance pertinent à zéro, supprimant une période supplémentaire de trois jours et d'une heure pendant laquelle les LP auraient pu autrement intervenir avant l'exécution.
Une analyse antérieure de l'incident a révélé que l'attaquant avait obtenu une influence sur la gouvernance à très faible coût. Une revue de la prise de contrôle de la gouvernance a constaté qu'environ 951 $ ont été dépensés pour acquérir suffisamment de jetons de gouvernance pour contrôler les votes liés aux coffres contenant des millions de dollars de dépôts.
Les transactions n'ont pas exigé que l'attaquant compromette les contrats de prêt à taux fixe de base de Term. Les contrats de gouvernance ont plutôt exécuté des instructions qui avaient passé le processus de proposition et de vote.
Une voie d'attaque similaire a été utilisée contre StrongBlock plus tôt en août, lorsqu'un attaquant a pris le contrôle de son système de gouvernance et a drainé environ 72 000 $ en jetons STRONG et STRNGR. L'attaquant a obtenu suffisamment de pouvoir de vote pour faire passer une proposition qui a finalement fourni un contrôle administratif sur le contrat Governor du projet.
L'ETH a été acheminé via une stratégie à destinataire fixe
La première proposition Term réussie a été exécutée à 06h25 UTC le 23 août.
Quatre stratégies ETH actives, Shorewoods, August Digital, Parity Prime et Parity Core, ont été rappelées dans le Meta Vault en utilisant update_debt() et dirigées vers une stratégie nouvellement ajoutée nommée frWETH-EXIT.
Term Labs a déclaré que la stratégie avait été nommée « Stratégie de sortie WETH à destinataire fixe ».
Une fois le WETH entré dans la nouvelle stratégie, frWETH-EXIT a transféré la totalité du montant au premier opérateur lors du même appel.
La transaction a laissé le Meta Vault détenant 2 841,74 actions dans une stratégie ne contenant aucun des WETH qui y avaient été transférés.
Ce chiffre correspond étroitement aux quelque 2 843 ETH que PeckShield a retracés depuis Term Finance lors de son analyse initiale de l'incident.
Vingt-deux minutes après la transaction ETH, la deuxième campagne a été exécutée contre cinq DAO de stratégie USDC.
Parity Prime, Parity Core, Parity HY, Parity HY v2 et RockawayX Tori ont été ciblées à 06h47 UTC.
Term Labs a déclaré que chaque proposition a amené son DAO à vendre une unité d'un jeton de pension contrefait dans la stratégie associée à une valeur égale au solde USDC liquide total de la stratégie.
L'attaquant a pu exécuter la vente après que les propositions aient installé un contrat appelé fmTERT.
Term Labs a déclaré que fmTERT se faisait passer à la fois pour le contrôleur utilisé pour déterminer si un jeton était un instrument Term légitime et pour l'adaptateur de prix responsable de déterminer la valeur de l'instrument.
Les propositions ont fixé le ratio de réserve de chaque stratégie à zéro et ont augmenté sa limite de concentration à la valeur maximale autorisée, empêchant ces contrôles de limiter la transaction de jeton contrefait.
Le jeton contrefait a ensuite été évalué à l'aide d'une fonction dynamique redemptionValue().
Lors de l'exécution, la fonction a renvoyé le montant précis de l'USDC liquide disponible dans la stratégie, permettant à une seule unité du jeton de pension contrefait d'être vendue pour pratiquement la totalité du solde disponible de la stratégie.
Après la vente, les propositions ont approuvé le produit en USDC et l'ont balayé de chaque DAO vers le portefeuille du deuxième opérateur.
Les positions à taux fixe ont été déplacées avant de pouvoir être rachetées
Term Labs a déclaré que les prêts à taux fixe détenus par les coffres affectés ne pouvaient pas être atteints par l'attaque elle-même.
Un problème distinct serait apparu lorsque ces positions arriveraient à échéance car leurs produits étaient programmés pour être rachetés dans les mêmes coffres qui avaient été capturés lors de l'attaque de gouvernance.
Le protocole a répondu en mettant à niveau les contrats affectés et en déplaçant les positions à taux fixe avant l'échéance.
Toutes les positions de prêt à taux fixe affectées ont depuis été récupérées, la dernière position ayant été déplacée à 14h52 UTC le 25 août.
L'incident illustre le rôle que les retards d'exécution peuvent jouer dans la sécurité de la gouvernance. Quelques jours avant l'attaque de Term Finance, Binance a déclaré avoir arrêté une proposition DAO malveillante qui menaçait environ 1,2 million de dollars appartenant à un projet non nommé. Il restait moins de 48 heures avant que cette proposition puisse être exécutée lorsque la bourse a contacté le projet, qui l'a finalement rejetée sans perte signalée.
Dans le cas de Term, les propositions malveillantes elles-mêmes ont supprimé des périodes de délai supplémentaires avant que les actifs ne soient pris. La proposition ETH a éliminé une fenêtre de sept jours et une heure, tandis que les cinq propositions USDC ont supprimé des périodes de trois jours et une heure de leurs piles de gouvernance respectives.
Term Labs a déclaré que ses Meta Vaults et les stratégies affectées restent fermées, tandis que les travaux d'arrêt impliquant les coffres restants à faible activité sont toujours en cours.
Le protocole travaille avec les forces de l'ordre et des entreprises de cybersécurité pour identifier les responsables de l'attaque et a déclaré avoir fourni des informations pertinentes pour aider les enquêtes.






