Einführung
Ein benutzerdefinierter FlashLoopAdapter, der zur Verwaltung von gehebelten Aave v3-Positionen verwendet wird, wurde auf Ethereum ausgenutzt. Dies führte zu Verlusten von schätzungsweise 305.000 USD in zwei Safe-Wallets, nachdem ein Angreifer die Zugriffskontrollen des Moduls umgangen hatte.
Details des Angriffs
Die Blockchain-Sicherheitsfirma SlowMist berichtete, dass der Angreifer eine Authentifizierungsanfälligkeit im FlashLoopAdapter-Vertrag ausnutzte, die es einem gefälschten Safe ermöglichte, die Prüfungen zu bestehen, die den Zugriff auf Wallets, die das Modul aktiviert hatten, einschränken sollten. Der Angreifer behielt letztendlich etwa 114,09 ETH, nachdem er das Modul verwendet hatte, um die Positionen der betroffenen Wallets zu manipulieren.
SlowMist TI Alert v3 Loop Safe Module Verlust: ~114,09 ETH
Grundursache: Die Zugriffskontrolle zum Öffnen/Schließen des FlashLoopAdapters überprüft nur ISafe(msg.sender).isModuleEnabled(address(this)), was über einen gefälschten Safe, der immer true zurückgibt, umgangen werden kann.
Der Vorfall betraf einen benutzerdefinierten Vertrag, der auf Aave aufgebaut war, und nicht das Kernprotokoll Aave v3. Defimon Alerts, das den Angriff um 15:08:57 UTC am 1. Oktober entdeckte, stellte fest, dass Aave v3 selbst nicht betroffen war.
Funktionsweise des FlashLoopAdapters
Der FlashLoopAdapter (v3 Loop Safe-Modul) wurde als Safe-Modul zum Öffnen und Schließen von gehebelten Positionen über Aave v3 konzipiert. Safes, die das Modul aktiviert hatten, konnten es verwenden, um Schleifenstrategien mit geliehenen Vermögenswerten und Sicherheiten zu verwalten. Laut SlowMist wurde die Schwäche in den Zugriffskontrollen gefunden, die von den Öffnungs- und Schließfunktionen des Adapters verwendet wurden.
Anstatt unabhängig festzustellen, dass der Anrufer ein legitimer Safe war, überprüften die Funktionen lediglich, ob ISafe(msg.sender).isModuleEnabled(address(this)) true zurückgab. Ein Angreifer konnte einen gefälschten Safe-Vertrag bereitstellen, der so programmiert war, dass er true zurückgab, wenn der FlashLoopAdapter die Überprüfung durchführte.
Folgen des Angriffs
Sobald der gefälschte Safe diesen Test bestand, erhielt der Angreifer Zugriff auf Funktionen, die auf autorisierte Wallets beschränkt sein sollten. Defimon Alerts berichtete, dass die während des Rückrufs durchgeführten Prüfungen die Transaktion nicht stoppten, da der Vertrag des Angreifers auch als Anbieter der Flash-Liquidität fungierte.
Eine weitere Funktion, _swap, erlaubte dann einen direkten Aufruf an einen swapRouter unter Verwendung von vom Anrufer bereitgestelltem swapCalldata. Beide Eingaben konnten vom Angreifer kontrolliert werden. Anstatt einen gewöhnlichen Swap-Router bereitzustellen, stellte der Angreifer den Router auf eine der Opfer-Safe-Wallets ein.
Der Angreifer nutzte dann den kompromittierten Modul-Ausführungspfad, um den Safe dazu zu bringen, etwa 1.306 weETH an eine vom Angreifer kontrollierte Adresse abzuheben. Ein zweiter Safe verlor weitere 6,4 weETH über dasselbe anfällige Modul. Defimon stellte fest, dass beide betroffenen Safes denselben einzelnen Eigentümer hatten.
Vergleich mit früheren Vorfällen
Ein ähnliches Problem mit Berechtigungen, die an Safe-Module angehängt sind, trat im September auf. Ein Ethereum Safe-Wallet-Exploit, der etwa 2.900 rsETH betraf, wurde von BlockSec auf schwache Autorisierungsprüfungen in einem Ausführungsvertrag zurückverfolgt. Der FlashLoopAdapter-Angriff betraf mehr als nur die Übertragung von Vermögenswerten, die bereits in den betroffenen Wallets vorhanden waren.
Der Angreifer blieb mit etwa 114,1 ETH zurück, die zum Zeitpunkt des Vorfalls etwa 305.000 USD wert waren. SlowMist schätzte den Verlust separat auf etwa 114,09 ETH und erklärte, dass während des Prozesses der Freigabe der Sicherheiten etwa 1.300 WETH Schulden zurückgezahlt wurden.
Schlussfolgerung
Weder Sicherheitswarnung identifizierte einen Fehler im Aave v3 selbst. Aave-Gründer und CEO Stani Kulechov erklärte, dass der betroffene Vertrag ein dritter externer Adapter war, der auf Aave aufgebaut war und „null Auswirkungen auf Aave v3“ hatte. Die gemeldete Schwachstelle betraf, wie der Adapter Anrufer authentifizierte und was sie das aktivierte Modul ausführen lassen konnten.
Die Unterscheidung ähnelt anderen Vorfällen, bei denen ein Protokoll oder Dienst betriebsbereit blieb, während ein Modul, das mit Safe-Wallets verbunden war, den Weg bereitstellte, der von einem Angreifer genutzt wurde.