Float Protocol hat etwa 28.000 $ oder 10,71 ETH verloren, nachdem ein Angreifer einen Flash-Loan nutzte, um einen Uniswap-V3-Spotpreis zu manipulieren und auszunutzen, wie seine Hypervisor-Verträge die Anteilswerte der Liquiditätsanbieter berechneten.
Zusammenfassung
- Float Protocol verlor etwa 28.000 $ oder 10,71 ETH, nachdem ein Flash-Loan-Angriff einen Uniswap-V3-Spotpreis manipulierte.
- SlowMist sagte, die Manipulation führte dazu, dass betroffene Hypervisor-Verträge überhöhte LP-Anteilswerte berechneten.
- Der Angreifer nutzte große Swaps, um currentTick() und getTotalAmounts() zu verzerren, und zahlte dann wiederholt ein und hob ab, basierend auf den falschen Werten.
- SlowMist sagte, kritische Funktionen entbehrten TWAP- oder Orakel-Verifizierung und Slippage-Schutz.
SlowMist sagte am 31. August, dass der Angreifer den Uniswap-V3-slot0-Spotpreis verzerrte, was dazu führte, dass betroffene Hypervisor-Verträge falsche LP-Anteilswerte berechneten. Das Blockchain-Sicherheitsunternehmen führte den Exploit auf Funktionen zurück, denen TWAP- oder Orakel-Verifizierung und Slippage-Schutz fehlten.
Durch große Swaps im zugrunde liegenden V3-Liquiditätspool manipulierte der Angreifer die von currentTick() und getTotalAmounts() zurückgegebenen Werte. SlowMist sagte, der Angreifer zahlte dann wiederholt Gelder ein und hob sie ab, während die Hypervisor-Verträge mit überhöhten Anteilswerten arbeiteten.
Das Sicherheitsunternehmen identifizierte die Angreiferadresse als 0xaea29218262dc6b0904ca077f6527c49dfd426d9 und den Angriffsvertrag als 0xb46655eb5b77de277063a75586d1883e951b6c54.
Zwei anfällige Verträge wurden als 0x85cbed523459b7f6f81c11e710df969703a8a70c und 0xc86b1e7fa86834cac1468937cdd53ba3ccbc1153 aufgeführt, während der zugrunde liegende Liquiditätspool als 0xe8c2036068fc3b0161ee1def0e8d01df4eac0ac identifiziert wurde.
Float-Protocol-Exploit beruhte auf Uniswap-V3-Spotpreismanipulation
Der Angriff konzentrierte sich darauf, wie die betroffenen Verträge Preisinformationen aus dem zugrunde liegenden Uniswap-V3-Pool erhielten. SlowMist sagte, große Trades ermöglichten es dem Angreifer, slot0 zu verzerren, das den aktuellen Preis und Tick-Informationen des Pools enthält.
Sobald der Poolpreis bewegt worden war, änderte die Manipulation die von currentTick() und getTotalAmounts() zurückgegebenen Werte. Die betroffenen Hypervisor-Verträge verwendeten die veränderten Daten, um LP-Anteilswerte zu berechnen, was es dem Angreifer ermöglichte, mit den Verträgen zu interagieren, während diese Anteile falsch bewertet waren.
Flash-Loans lieferten das temporäre Kapital, das für die großen Trades benötigt wurde. Wie crypto.news bereits erklärte, ermöglicht ein Flash-Loan, Vermögenswerte ohne vorherige Sicherheiten zu leihen, solange das Darlehen und die Gebühren innerhalb derselben Blockchain-Transaktion zurückgezahlt werden.
Wenn die Rückzahlung nicht erfolgt, wird die gesamte Transaktion rückgängig gemacht. Der Mechanismus ermöglicht es Händlern, auf große Mengen temporärer Liquidität für Arbitrage, Sicherheitentausch und Liquidationen zuzugreifen, aber dieselbe Liquidität kann verwendet werden, um anfällige Preis- oder Smart-Contract-Logik auszunutzen.
In seiner Analyse von Float Protocol führte SlowMist den Verlust darauf zurück, dass die Verträge auf einen manipulierbaren Spotpreis angewiesen waren, ohne Überprüfungen, die ihn gegen einen zeitgewichteten Durchschnittspreis oder ein anderes Orakel verifizieren könnten. Kritische Funktionen entbehrten laut dem Sicherheitsunternehmen auch Slippage-Schutz.
Angreifer nutzte wiederholt überhöhte LP-Anteilswerte
SlowMist sagte, der Angreifer hörte nicht auf, nachdem er den Uniswap-V3-Poolpreis geändert hatte. Sobald slot0 verzerrt worden war, zahlte der Angreifer wiederholt in die betroffenen Verträge ein und hob ab, unter Verwendung der überhöhten LP-Anteilsberechnungen.
Die Sequenz ermöglichte es, Wert zu extrahieren, während die Verträge auf den manipulierten Poolzustand angewiesen waren. SlowMist schätzte den endgültigen Verlust auf ungefähr 10,71 ETH, was etwa 28.000 $ wert war, als es den Alarm veröffentlichte.
Ähnliche Methoden wurden bei anderen DeFi-Angriffen verwendet, bei denen große temporäre Trades Preise oder Pool-Verhältnisse verzerren, bevor ein anderer Vertrag die manipulierten Werte verwendet.
Im Juli wurde Allbridge Core gestoppt, nachdem ein Angreifer einen Flash-Loan von 1,12 Millionen USDC von Kamino während eines Exploits nutzte, der laut PeckShield Schätzungen Verluste von etwa 1,65 Millionen Dollar verursachte.
Onchain Lens sagte, der Allbridge-Angreifer habe schnelle USDC- und USDT-Swaps durchgeführt, um das Verhältnis in einem Stablecoin-Pool zu verändern. Der Angreifer zog dann Liquidität zum verzerrten Kurs ab, bevor er den Flash-Loan in derselben Transaktion zurückzahlte.
Allbridge sagte, einige Liquiditätspools seien nach dem Vorfall vorübergehend aus dem Gleichgewicht geraten und bat Benutzer, die von ungewöhnlichen Preisen profitiert hatten, in Betracht zu ziehen, die Gelder zurückzugeben. Das Protokoll pausierte Core, während Ermittler Vermögenswerte verfolgten, die von Solana zu Ethereum verschoben worden waren.
Preisdaten bleiben ein Ziel bei DeFi-Angriffen
Ein weiterer Vorfall im Juli zeigte, wie manipulierte Preisinformationen verwendet werden können, selbst wenn die Schwachstelle außerhalb der Smart Contracts eines Protokolls liegt.
Ostium kam zu dem Schluss, dass sein Exploit von 23,75 Millionen USDC auf kompromittierte Off-Chain-Infrastruktur zurückzuführen ist. Das dezentrale Handelsprotokoll sagte, ein Angreifer habe betrügerische BTC/USD-Preisberichte eingereicht, die es ermöglichten, Gelder aus seinem OLP-Liquiditäts-Tresor abzuziehen.
Ostium sagte, seine Smart Contracts seien nicht die Quelle dieses Verstoßes. Automatisierte Überwachung entdeckte den Angriff, der Handel wurde am 23. Juli wieder aufgenommen, und das Protokoll berichtete, dass Benutzersicherheiten nicht betroffen waren.
Der Vorfall von Float Protocol betraf einen anderen Mechanismus, der von SlowMist beschrieben wurde. Die Analyse der Sicherheitsfirma platzierte die Schwachstelle in den betroffenen Hypervisor-Verträgen, wo manipulierte Uniswap-V3-Pool-Daten die Berechnungen beeinflussen konnten, die zur Bewertung von LP-Anteilen verwendet wurden.
Flash-Loan-Kapital war auch bei anderen Angriffen in diesem Jahr beteiligt. Ein Angriff auf Swan Treasury im Juli nutzte einen PancakeSwap-Flash-Loan, nachdem ein kompromittierter Off-Chain-Signer-Schlüssel es einem Angreifer ermöglichte, STY-Token mit einem großen Rabatt zu kaufen.
Der Swan-Treasury-Exploit verursachte einen geschätzten Verlust von 625.000 Dollar. Die Sicherheitsanalyse ergab, dass gefälschte Claim- und Transfer-Signaturen mit dem kompromittierten Signer-Schlüssel des Protokolls erstellt worden waren, was den Kauf von etwa 687.000 STY zu einem etwa 100-fachen Rabatt ermöglichte, bevor sie in den STY/USDT-Pool verkauft wurden.
Der Flash-Loan stellte Kapital für die Transaktion bereit, während Ermittler die zugrunde liegende Schwachstelle dem geleakten Signer-Schlüssel zuschrieben, nicht der Signaturverifizierungslogik des Protokolls.
SlowMist weist auf fehlende Preischecks in Float-Protocol-Verträgen hin
Für Float Protocol identifizierte SlowMist speziell das Fehlen von TWAP- oder Oracle-Validierung als Teil des Angriffspfads.
Ein TWAP verwendet Beobachtungen, die über einen Zeitraum gesammelt wurden, anstatt sich ausschließlich auf den Preis zu einem bestimmten Zeitpunkt zu verlassen. Spotpreise in Liquiditätspools können sich bewegen, wenn ein ausreichend großer Trade das Verhältnis der Vermögenswerte verändert, was der Mechanismus war, den SlowMist als vom Float-Protocol-Angreifer ausgenutzt beschrieb.
Der Flash-Loan-Leitfaden von Crypto.news beschrieb Preis Manipulation als eine der häufigsten Möglichkeiten, wie temporäre Liquidität gegen eine verwundbare DeFi-Anwendung verwendet werden kann. Der Bericht stellte fest, dass der Flash-Loan das Kapital für einen Angriff bereitstellt, während die ausnutzbare Schwachstelle in Preis-Orakeln, Governance-Systemen oder Vertragslogik liegen kann.
Im Fall von Float Protocol sagte SlowMist, dass große Trades verwendet wurden, um den slot0-Wert des Uniswap-V3-Pools zu verzerren, was wiederum currentTick() und getTotalAmounts() veränderte. Der Angreifer zahlte wiederholt ein und zog aus, während die betroffenen Hypervisor-Verträge aufgeblähte LP-Anteilswerte berechneten, was zu einem geschätzten Verlust von 10,71 ETH führte.






