Exploitation de FlashLoopAdapter : 114 ETH dérobés sur deux coffres Safe
Un module tiers d'Aave v3 compromis par un contrôle d'accès falsifiable
Quick Look
La société de sécurité SlowMist signale l'exploitation de FlashLoopAdapter, un module tiers d'Aave v3, entraînant la perte de 114,09 ETH sur deux coffres multisignatures Safe en raison d'un contrôle d'accès falsifiable.
AI-generated summary
Why It Matters
La société SlowMist a signalé l'exploitation d'une faille dans FlashLoopAdapter, un module tiers lié à Aave v3.
Un contrôle d’accès en trompe-l’œil. La société de sécurité SlowMist a signalé l’exploitation de FlashLoopAdapter, un module Safe personnalisé conçu pour gérer des positions à effet de levier sur Aave v3. L’attaquant a combiné un contrôle d’accès falsifiable avec une fonction d’échange trop permissive pour vider deux coffres multisignatures.
La perte nette atteint environ 114,09 ETH. Plus de 1 300 WETH empruntés sur Aave v3 ont également été remboursés afin de libérer le collatéral. Le protocole Aave v3 lui-même n’a pas été compromis. Voici ce que l’on sait.
Points clés
L’incident concerne FlashLoopAdapter, un module tiers installé sur deux portefeuilles Safe
Le contrôle d’accès pouvait être trompé par un faux contrat se présentant comme un portefeuille Safe
L’attaquant contrôlait également le routeur et les données utilisées par la fonction d’échange du module
Les marchés d’Aave v3 n’ont subi aucune perte : la faille se trouvait dans une couche d’intégration externe
Aave v3 intact, FlashLoopAdapter pris au piège d’un faux Safe
FlashLoopAdapter servait à ouvrir ou fermer en une seule transaction des positions dites de looping. Cette stratégie consiste à déposer un actif en garantie, à emprunter du WETH, puis à redéposer les fonds obtenus afin d’amplifier l’exposition au rendement et aux éventuelles récompenses.
Contrairement à une première lecture du code, les fonctions open() et close() disposaient bien d’un contrôle d’accès. Le contrat vérifiait que l’appelant était un portefeuille Safe ayant activé FlashLoopAdapter comme module. Cependant, cette vérification reposait sur la réponse fournie par l’appelant lui-même.
L’attaquant a donc déployé un faux contrat capable de se présenter comme un Safe et de répondre systématiquement que le module était autorisé. Ce premier contournement ne suffisait toutefois pas à vider les portefeuilles ciblés.
La seconde faiblesse se trouvait dans la fonction interne _swap(). Celle-ci laissait l’utilisateur fournir librement l’adresse du routeur d’échange et les données d’appel associées. L’attaquant pouvait ainsi orienter le module vers un contrat de son choix et lui faire exécuter des instructions arbitraires.
FlashLoopAdapter était déjà légitimement activé sur les deux Safes victimes. Il disposait donc du droit d’utiliser execTransactionFromModule, une fonction qui permet à un module approuvé d’exécuter une transaction sans recueillir à nouveau les signatures habituelles du portefeuille multisignature.
Deux coffres Safe perdent 114 ETH, sans faille dans Aave
Pour récupérer le collatéral, principalement composé de weETH, l’attaquant devait d’abord solder les emprunts contractés sur Aave. Il a utilisé un flash loan, c’est-à-dire un prêt obtenu et remboursé au sein de la même transaction, afin de rembourser plus de 1 300 WETH de dette et de débloquer les actifs déposés en garantie.
Après remboursement du prêt instantané et paiement des frais, le bénéfice net de l’opération atteignait environ 114,09 ETH. Cette somme correspond à la valeur restante des positions qui auraient dû revenir aux propriétaires des deux coffres.
Ni les contrats centraux d’Aave v3 ni ceux de Safe ne présentaient la vulnérabilité exploitée. La perte provient d’un module tiers auquel les propriétaires avaient volontairement accordé des droits étendus. SlowMist ne précise pas quelle équipe avait développé ou déployé cet adaptateur.
Open Questions
- Quelle équipe a développé ou déployé FlashLoopAdapter ?
- D'autres portefeuilles Safe sont-ils vulnérables ?







