Pickle Finance Fake-Jar-Drain
19,76 Mio. DAI aus Pickle Finance abgezogen, nachdem der Angreifer zwei gefälschte 'Jar'-Verträge erstellte und eine fehlende Whitelist-Prüfung ausnutzte.
- Datum
- Opfer
- Pickle Finance
- Chain(s)
- Status
- Mittel entwendet
Am 21. November 2020 verlor das Yield-Aggregator-Protokoll Pickle Finance 19,76 Millionen DAI (~19,76 Mio. $ zur damaligen Zeit angesichts des DAI-Pegs) in einem mehrstufigen Exploit, den PeckShield als den komplexesten DeFi-Angriff von 2020 charakterisierte. Der Bug: Die "Jar"-Verträge des Protokolls vertrauten jedem Aufrufer dabei zu identifizieren, was ein legitimer Jar war und was nicht.
Was geschah
Pickle Finance verwendete eine "Jar"-Abstraktion — ein renditebringender Vault, der Nutzer-Einzahlungen in verschiedenen DeFi-Strategien repräsentierte. Der ControllerV4 Smart Contract verwaltete diese Jars und stellte eine Funktion swapExactJarForJar() bereit, die es Nutzern erlaubte, Mittel zwischen Strategien zu bewegen.
Die Schwachstelle hatte zwei Hälften:
swapExactJarForJar()validierte nicht, ob die bereitgestellten "Jar"-Argumente auf einer Whitelist legitimer Pickle-Jars standen. Jeder Vertrag, der behauptete, ein Jar zu sein, wurde akzeptiert.- Die Funktion verifizierte auch nicht, dass die Strategie hinter jedem Jar authentisch war, was es erlaubte, dass angreiferkontrollierter Code im privilegierten Aufrufpfad aufgerufen wurde.
Der Angriff:
- Deployte zwei gefälschte "Jar"-Verträge, die die erwartete Jar-Schnittstelle bereitstellten, aber vollständig angreiferkontrolliert waren.
- Rief
swapExactJarForJar()mit dem legitimenpDAI-Jar als Quelle und dem gefälschten Jar als Ziel auf. - Der ControllerV4-Vertrag hob brav DAI aus dem echten
StrategyCmpdDaiV2(Pickles Compound-DAI-Strategie) ab und legte sie in den angreiferkontrollierten "Jar", der die DAI einfach an den Angreifer weiterleitete. - Zog 19,76 Millionen DAI aus der Strategie in einer einzigen Transaktion ab.
Folgen
- Pickle Finance pausierte betroffene Verträge und lieferte Notfall-Patches.
- Der PICKLE-Governance-Token fiel ~50 % intraday auf die Nachricht.
- Das Protokoll überlebte, kehrte aber nie zu seinem Vorfall-TVL zurück; Pickle ging schließlich in eine Partnerschaft mit Yearn ("Pickle ↔ Yearn Cooperation").
- Die Mittel wurden über Tornado Cash gewaschen; keine Wiederherstellung.
Warum es wichtig ist
Pickle ist eine der frühesten Fallstudien für die Fake-Vertrags-Injection-Klasse von Bug — wenn eine privilegierte Operation Vertragsadressen als Parameter akzeptiert, muss jede dieser Adressen gegen eine autoritative Whitelist validiert werden, nicht basierend auf Interface-Konformität als legitim angenommen. Dieselbe Klasse von Schwachstelle ist bei Protokollen wiederholt aufgetreten, von Cashio (Solana, 2022) bis Hedgey Finance (Ethereum, 2024).
Pickle ist auch bemerkenswert, weil es zeigt, dass Komplexität in DeFi-Protokollen sich in Angriffsfläche aufaddiert. Yield-Aggregatoren, die über mehrere Sub-Strategien routen — jede mit eigener Vertragsschnittstelle, Einzahlungs-/Auszahlungsfluss und Vertrauensannahmen — multiplizieren die Anzahl der Wege, wie ein Angreifer einen bösartigen Vertrag in den Routing-Pfad einschleusen kann.
Quellen & On-Chain-Belege
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-defi-protocol-pickle-finance-hack-nov-2020
- [02]immunebytes.comhttps://immunebytes.com/blog/pickle-finance-exploit-nov-21-2020-detailed-analysis/
- [03]blog.peckshield.comhttps://blog.peckshield.com/2020/11/21/pickle/