Back to Blog

#5: Platypus Finance: Überleben dreier Angriffe mit Glück

February 15, 2024
5 min read

Zusammenfassung

Platypus Finance ist ein AMM-Protokoll auf der Avalanche-Blockchain. Es wurde wie folgt dreimal angegriffen:

  • Am 17. Februar 2023 erlitt es einen Hack aufgrund einer fehlerhaften Solvenzprüfung, was zu einem Gesamtschaden von rund 9,05 Mio. USD führte. Davon konnten $2,4 Mio. mit Hilfe von BlockSec gerettet werden. Ungefähr 380.000 Token waren im Aave-Vertrag gefangen und wurden anschließend zurückgegeben.
  • Am 12. Juli 2023 wurde es gehackt, wobei rund 50.000 USD verloren gingen, da die Preisdifferenz zwischen Stablecoins ignoriert wurde.
  • Am 12. Oktober 2023 litt es unter Angriffen zur Preismanipulation, wobei rund 2,2 Mio. USD verloren gingen. Nach Verhandlungen mit dem Exploiter wurden 90 % der gestohlenen Gelder zurückgegeben.

Das Projekt hat Glück, all diese Angriffe überstanden zu haben. Unsere Analyse dieser drei Exploits zeigt, dass die logischen Schwachstellen vermieden werden könnten, wenn sorgfältige Audits oder aktivere Sicherheitsmaßnahmen angewendet worden wären.

Angriff Eins

Um diesen Sicherheitsvorfall zu verstehen, muss man den Workflow mehrerer Smart Contracts verstehen. Der grobe Ablauf ist wie folgt:

  • Ein Benutzer kann einen Token in einen Pool einzahlen, um LP zu werden und einen LP-Token zu erhalten.
  • Der LP-Token kann in MasterPlatypus gestaket werden, um Belohnungen zu erhalten. Der LP-Token wird dabei an den MasterPlatypus-Vertrag übertragen.
  • Der LP-Token kann als Sicherheit verwendet werden, um andere Vermögenswerte zu leihen und die Effizienz der Vermögenswerte zu verbessern.

Die folgende Abbildung zeigt die Interaktionen.

Schwachstellenanalyse

Die Schwachstelle liegt in einer Funktion namens emergencyWithdraw innerhalb des MasterPlatypus-Vertrags. In Notfällen sollte diese Funktion verwendet werden, um die gestakten LP-Token aus dem MasterPlatypus-Vertrag abzuheben. In dieser Funktion prüft der Vertrag, ob der Benutzer solvent (zahlungsfähig) ist, um die Auszahlung zu ermöglichen. Die Logik prüft, ob Benutzer Schulden haben (d. h. ob die Sicherheiten zur Begleichung der Schulden verwendet werden können). Wenn nicht, können die Benutzer die gestakten LP-Token abheben.

Diese Logik ist jedoch fehlerhaft. Dass ein Benutzer solvent ist, bedeutet nur, dass die Sicherheiten des Benutzers seine Schulden decken können. Es wird jedoch NICHT geprüft, ob der Benutzer nach der Notfallauszahlung der gestakten Token weiterhin solvent bleibt. Ein Angreifer kann diesen Fehler ausnutzen, um Vermögenswerte zu leihen und dann auch die gestakten LP-Token notfallmäßig abzuheben (ohne die Schulden zurückzuzahlen). Siehe die detaillierte Analyse im Immunefi-Blog.

Angriffsanalyse

Wir verwenden eine Angriffstransaktion als Beispiel, um den gesamten Angriffsprozess zu zeigen.

Schritt 1: 44 Millionen USDC Flashloan von AAVE leihen

Schritt 2: 44 Millionen USDC in den Pool einzahlen, um LP-USDC zu erhalten

Schritt 3: LP-USDC in MasterPlatypus einzahlen

Schritt 4: LP-USDC als Sicherheit verwenden, um USP zu leihen

Schritt 5: Ausführen der emergencyWithdraw-Funktion, um den Angriff zu starten

Der Angreifer erhält die LP-USDC, ohne die USP-Schulden zu begleichen.

Schritt 6: LP-USDC aus dem Pool abziehen, um USDC zu erhalten

Schritt 7: USP zur Gewinnerzielung verkaufen

Allerdings verbleiben die Gewinne im Angriffskontrakt. Tatsächlich kann der Angreifer eine neue Empfangsadresse für den Swap einrichten, um Gewinne zu erzielen.

BlockSecs Rettung

Wir stellten fest, dass der Angreifer die Gewinne im Angriffskontrakt hinterlassen hatte. Außerdem gab es keine Logik im Angriffskontrakt, um die Vermögenswerte abzuheben. Wir fanden jedoch eine Schwachstelle im Angriffskontrakt, die ausgenutzt werden konnte, um einen Teil der Vermögenswerte aus dem Kontrakt zurückzuholen.

Insbesondere gibt es eine Zugriffskontrolle für die Flashloan-Callback-Funktion, was bedeutet, dass jeder diese Callback-Funktion aufrufen kann. Dies ist auch die Hauptursache für Angriffe auf viele MEV-Bots.

Darüber hinaus genehmigt der Angreifer-Kontrakt innerhalb der Callback-Funktion den USDC-Token für den Platypus-Finance-Pool-Kontrakt. Und dieser Pool-Kontrakt ist upgradebar!

Durch die Kombination der beiden vorherigen Punkte können wir die USDC aus dem Angriffskontrakt retten, indem wir:

  • Den Platypus-Finance-Pool-Kontrakt upgraden, um eine Logik zum Abheben der USDC aus dem Kontrakt einzubauen.
  • Den Callback des Angriffskontrakts aufrufen, um die USDC für den Pool-Kontrakt zu genehmigen.
  • Der Pool-Kontrakt kann jede Funktion (die vom Angriffskontrakt ausgeführt wird) ersetzen, um die USDC vom Angriffskontrakt zu übertragen (da der Angriffskontrakt die USDC für den Pool-Kontrakt genehmigt hat).

Hier ist die Transaktion zur Rettung von 2,4 Millionen USDC.

Zwei weitere Angriffe

Weitere Details zu den beiden anderen Angriffen finden Sie unter den folgenden Links.

Zusammenfassung

Die drei Angriffe nutzten unterschiedliche Schwachstellen im Protokoll aus. Obwohl einige andere Anbieter das Protokoll geprüft hatten, fand der Angreifer dennoch die Lücke und nutzte das Protokoll erfolgreich aus. Glücklicherweise wurden einige Vermögenswerte gerettet, aber wir können nicht davon ausgehen, dass wir immer Glück haben. Weitere Sicherheitsmaßnahmen einschließlich Angriffüberwachung und automatische Reaktion, sollten übernommen werden, um das Protokoll und die Benutzervermögen zu sichern.

Lesen Sie weitere Artikel in dieser Serie:

Sign up for the latest updates
Newsletter - April 2026
Security Insights

Newsletter - April 2026

In April 2026, the DeFi ecosystem experienced three major security incidents. KelpDAO lost ~$290M due to an insecure 1-of-1 DVN bridge configuration exploited via RPC infrastructure compromise, Drift Protocol suffered ~$285M from a multisig governance takeover leveraging Solana's durable nonce mechanism, and Rhea Finance incurred ~$18.4M following a business logic flaw in its margin-trading module that allowed circular swap path manipulatio

~$7.04M Lost: GiddyDefi, Volo Vault & More | BlockSec Weekly
Security Insights

~$7.04M Lost: GiddyDefi, Volo Vault & More | BlockSec Weekly

This BlockSec weekly security report covers eight attack incidents detected between April 20 and April 26, 2026, across Ethereum, Avalanche, Sui, Base, HyperLiquid, and MegaETH, with total estimated losses of approximately $7.04M. The highlighted incident is the $1.3M GiddyDefi exploit, where the attacker did not break any cryptography or use a flash loan but simply replayed an existing on-chain EIP-712 signature with the unsigned `aggregator` and `fromToken` fields swapped out for a malicious contract, demonstrating how partial signature coverage turns any historical signature into a generic permit. Other incidents include a $3.5M Volo Vault operator key compromise on Sui, a $1.5M Purrlend privileged-role takeover, a $413K SingularityFinance oracle misconfiguration, a $142.7K Scallop cross-pool index injection, a $72.35K Kipseli Router decimal mismatch, a $50.7K REVLoans (Juicebox) accounting pollution, and a $64K Custom Rebalancer arbitrary-call exploit.

Weekly Web3 Security Incident Roundup | Apr 13 – Apr 19, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Apr 13 – Apr 19, 2026

This BlockSec weekly security report covers four attack incidents detected between April 13 and April 19, 2026, across multiple chains such as Ethereum, Unichain, Arbitrum, and NEAR, with total estimated losses of approximately $310M. The highlighted incident is the $290M KelpDAO rsETH bridge exploit, where an attacker poisoned the RPC infrastructure of the sole LayerZero DVN to fabricate a cross-chain message, triggering a cascading WETH freeze across five chains and an Arbitrum Security Council forced state transition that raises questions about the actual trust boundaries of decentralized systems. Other incidents include a $242K MMR proof forgery on Hyperbridge, a $1.5M signed integer abuse on Dango, and an $18.4M circular swap path exploit on Rhea Finance's Burrowland protocol.