Incident de Float Protocol
Float Protocol a subi une perte d’environ 28 000 $, soit 10,71 ETH, après qu’un attaquant a utilisé un flash loan pour manipuler le prix au comptant de Uniswap V3 et exploiter les failles dans le calcul des valeurs des parts des fournisseurs de liquidité par ses contrats Hypervisor. SlowMist a rapporté le 31 août que l’attaquant avait déformé le prix au comptant (slot0) de Uniswap V3, ce qui a conduit les contrats Hypervisor concernés à calculer des valeurs de parts LP incorrectes. La société de sécurité blockchain a retracé l’exploitation à des fonctions qui manquaient de vérification TWAP (Time Weighted Average Price) ou d’oracle, ainsi que de protection contre le slippage.
Alerte de SlowMist : Perte estimée : ~28 000 $ (10,71 ETH)
Cause principale : Manipulation du prix au comptant de Uniswap V3 (slot0) via des flash loans, entraînant une évaluation incorrecte des parts LP dans les contrats Hypervisor.
En utilisant de grandes transactions dans le pool de liquidité V3 sous-jacent, l’attaquant a manipulé les valeurs retournées par currentTick et getTotalAmounts. SlowMist a indiqué que l’attaquant avait ensuite déposé et retiré des fonds à plusieurs reprises pendant que les contrats Hypervisor fonctionnaient avec des valeurs de parts gonflées. La société de sécurité a identifié l’adresse de l’attaquant comme étant 0xaea29218262dc6b0904ca077f6527c49dfd426d9 et le contrat d’attaque comme 0xb46655eb5b77de277063a75586d1883e951b6c54. Deux contrats vulnérables ont été listés comme 0x85cbed523459b7f6f81c11e710df969703a8a70c et 0xc86b1e7fa86834cac1468937cdd53ba3ccbc1153, tandis que le pool de liquidité sous-jacent a été identifié comme 0xe8c2036068fc3b0161ee1def0e8d01df4eac0ac.
L’attaque était centrée sur la manière dont les contrats affectés obtenaient des informations de prix du pool Uniswap V3 sous-jacent. SlowMist a déclaré que de grandes transactions permettaient à l’attaquant de déformer slot0, qui contient le prix actuel du pool et les informations de tick. Une fois que le prix du pool avait été déplacé, la manipulation a modifié les valeurs retournées par currentTick et getTotalAmounts. Les contrats Hypervisor affectés ont utilisé les données altérées pour calculer les valeurs des parts LP, permettant ainsi à l’attaquant d’interagir avec les contrats pendant que ces parts étaient mal évaluées. Les flash loans ont fourni le capital temporaire nécessaire pour effectuer ces grandes transactions.
Analyse de SlowMist
Comme Crypto.news l’a précédemment expliqué, un flash loan permet d’emprunter des actifs sans garantie préalable, tant que le prêt et les frais sont remboursés dans la même transaction blockchain. Si le remboursement n’a pas lieu, l’ensemble de la transaction est annulé. Ce mécanisme permet aux traders d’accéder à de grandes quantités de liquidité temporaire pour l’arbitrage, les échanges de garanties et les liquidations, mais cette même liquidité peut être exploitée pour manipuler des prix vulnérables ou la logique des contrats intelligents.
Dans son analyse de Float Protocol, SlowMist a attribué la perte aux contrats qui s’appuyaient sur un prix au comptant manipulable sans vérifications pouvant le valider par rapport à un prix moyen pondéré dans le temps ou un autre oracle. Les fonctions critiques manquaient également de protection contre le slippage, selon la société de sécurité. SlowMist a rapporté que l’attaquant ne s’est pas arrêté après avoir modifié le prix du pool Uniswap V3. Une fois que slot0 avait été déformé, l’attaquant a déposé et retiré à plusieurs reprises des fonds des contrats affectés en utilisant les calculs gonflés des parts LP. Cette séquence a permis d’extraire de la valeur pendant que les contrats s’appuyaient sur l’état manipulé du pool.
SlowMist a estimé la perte finale à environ 10,71 ETH, d’une valeur d’environ 28 000 $ au moment de la publication de l’alerte. Des méthodes similaires ont été utilisées dans d’autres attaques DeFi où de grandes transactions temporaires déforment les prix ou les ratios de pool avant qu’un autre contrat n’utilise les valeurs manipulées.
Autres incidents similaires
En juillet, Allbridge Core a été suspendu après qu’un attaquant a utilisé un flash loan de 1,12 million de dollars USDC de Kamino lors d’une exploitation que PeckShield a estimée avoir causé environ 1,65 million de dollars de pertes. Onchain Lens a rapporté que l’attaquant d’Allbridge avait effectué des échanges rapides de USDC et USDT pour changer le ratio à l’intérieur d’un pool de stablecoins. L’attaquant a ensuite retiré de la liquidité au taux déformé avant de rembourser le flash loan dans la même transaction. Allbridge a déclaré que certains pools de liquidité étaient temporairement déséquilibrés après l’incident et a demandé aux utilisateurs ayant profité de prix inhabituels de considérer le retour des fonds.
Un autre incident de juillet a montré comment des informations de prix manipulées peuvent être utilisées même lorsque la faiblesse se situe en dehors des contrats intelligents d’un protocole. Ostium a conclu que son exploitation de 23,75 millions de dollars USDC provenait d’une infrastructure hors chaîne compromise. Le protocole de trading décentralisé a déclaré qu’un attaquant avait soumis de faux rapports de prix BTC/USD, permettant de vider des fonds de son coffre de liquidité OLP. Ostium a précisé que ses contrats intelligents n’étaient pas la source de cette violation.
Une surveillance automatisée a détecté l’attaque, le trading a repris le 23 juillet, et le protocole a rapporté que le collatéral des utilisateurs n’avait pas été affecté.
L’incident de Float Protocol impliquait un mécanisme différent, comme l’a décrit SlowMist. L’analyse de la société de sécurité a placé la faiblesse à l’intérieur des contrats Hypervisor affectés, où les données manipulées du pool Uniswap V3 pouvaient influencer les calculs utilisés pour évaluer les parts LP. Les flash loans ont été impliqués dans d’autres attaques cette année.
Pour Float Protocol, SlowMist a spécifiquement identifié l’absence de validation TWAP ou oracle comme faisant partie du chemin d’attaque. Un TWAP utilise des observations collectées sur une période au lieu de se fier uniquement au prix disponible à un moment donné. Les prix au comptant à l’intérieur des pools de liquidité peuvent fluctuer lorsqu’une transaction suffisamment importante change le ratio des actifs, ce qui était le mécanisme que SlowMist a déclaré que l’attaquant de Float Protocol avait exploité.
Le guide des flash loans de Crypto.news a décrit la manipulation des prix comme l’un des moyens courants par lesquels la liquidité temporaire peut être utilisée contre une application DeFi vulnérable. Le rapport a noté que le flash loan fournit le capital pour une attaque, tandis que la faiblesse exploitable peut résider dans les oracles de prix, les systèmes de gouvernance ou la logique des contrats. Dans le cas de Float Protocol, SlowMist a déclaré que de grandes transactions avaient été utilisées pour déformer la valeur slot0 du pool Uniswap V3, ce qui a ensuite modifié currentTick et getTotalAmounts. L’attaquant a déposé et retiré à plusieurs reprises pendant que les contrats Hypervisor affectés calculaient des valeurs de parts LP gonflées, entraînant une perte estimée de 10,71 ETH.