Zum Inhalt springen
Gegr. MMXXVIBd. VI · № 273RSS
Blockchain Breaches

Ein Archiv von Sicherheitsvorfällen im Kryptobereich — Hacks, Exploits, Bridge-Ausfälle und Rug Pulls, dokumentiert mit On-Chain-Belegen.

Dossier № 254Smart-Contract-Bug

Yearn yETH Infinite Mint

Yearns yETH-Pool mintete 235 Septillionen yETH aus 16 Wei Einzahlung: Liquiditätsentnahme setzte Supply auf null, cached Balances blieben.

Datum
Chain(s)
Status
Teilweise zurückerlangt

Am 30. November 2025 wurde Yearn Finance's maßgeschneiderter yETH-StableSwap-Pool für rund 9 Millionen Dollar exploitet, in dem, was Check Point Research den „16-Wei-Exploit" nannte — der Angreifer mintete 235 Septillionen yETH (2,35 × 10^23 Tokens) aus einer Einzahlung von 16 Wei (rund 0,00000000000000005 $ wert). Der Bug: Gespeicherte Virtual Balances persistierten im Storage nach einer Liquiditätsentnahme, die den Supply des Pools auf null zurücksetzte. Yearn gewann 2,39 Mio. $ durch koordinierten Clawback mit den Plume- und Dinero-Teams zurück.

Was geschah

Yearns yETH-Produkt war ein StableSwap-artiger Pool, der verschiedene ETH-pegged Liquid-Staking-Tokens aggregierte. Um Gas-Kosten während Operationen zu reduzieren, nutzte die Pool-Implementierung ein packed_vbs[]-Array — gespeicherte Virtual Balances, im Storage gecached, damit das Protokoll teure Cross-Contract-Reads bei jeder Operation vermeiden konnte.

Die Schwachstelle lag in der Lücke zwischen zwei Zustandsmutations-Pfaden:

  1. Der totalSupply-Zähler des Pools setzte sich auf null zurück, wenn alle Liquidität entfernt wurde — der Standard-„Vault ist leer"-Zustand.
  2. Die gecachten packed_vbs[] Virtual Balances setzten sich NICHT zurück, wenn Supply auf null ging — sie behielten ihre zuletzt aufgezeichneten Werte vor der Liquiditätsentnahme.

Dies ließ den Pool in einem Phantom-Zustand: Aus der Buchhaltungssicht des Protokolls war Supply null, aber die gecachten Virtual Balances zeichneten immer noch substantiellen Wert auf. Jede nachfolgende Einzahlung würde Share-Preis als (cached_value + new_deposit) / new_supply berechnen — und da new_supply das einzige war, was tatsächlich durch die Einzahlung skaliert wurde, würde selbst eine mikroskopische Einzahlung astronomische Share-Preis-Berechnungen produzieren.

Der Angriff:

  1. Erkannte den Pool in seinem Phantom-Zustand — leerer Supply, Nicht-Null gecachte Virtual Balances.
  2. Hinterlegte 16 Wei — eine Menge so klein, dass sie normalerweise ignoriert oder abgelehnt würde.
  3. Der Pool berechnete Share-Zuteilung als Funktion der gecachten Balances und mintete ~235 Septillionen yETH-Tokens an den Angreifer gegen die 16-Wei-Einzahlung.
  4. Tauschte die geminteten yETH über Curves yETH-WETH-Pool und extrahierte rund 900.000 $ in echtem ETH aus Curve.
  5. Setzte den Drain fort: Der yETH-Stableswap-Pool selbst wurde um weitere 8 Millionen $ geleert, als der Angreifer seine absurde Share-Holding gegen die zugrunde liegenden Pool-Reserven ausübte.

Gesamtextraktion: rund 9 Millionen $ in ETH und ETH-LST-Äquivalenten. 1.000 ETH (~3 Mio. $) wurden innerhalb von Stunden zu Tornado Cash kanalisiert.

Nachwirkungen

  • Yearn pausierte yETH-Operationen und arbeitete mit nachgelagerten Protokollen, die yETH hielten, an einer koordinierten Reaktion.
  • Eine Clawback-Operation mit den Plume- und Dinero-Teams gewann 857,49 pxETH (~2,39 Mio. $) zurück — Mittel, die zu Plumes Chain gebrückt worden waren und durch koordinierte Zustands-Intervention umgekehrt werden konnten.
  • Yearn betonte — und verifizierte on-chain —, dass v2- und v3-Vaults und andere Produkte unbeeinflusst waren; der Bug war spezifisch für die maßgeschneiderte yETH-Stableswap-Implementierung.
  • Die verbleibenden Erlöse des Angreifers wurden durch Tornado Cash und Cross-Chain-Bridges gewaschen.

Warum es zählt

Der yETH-Exploit ist einer der saubersten 2025er Fälle für wie Performance-Optimierungen neue Angriffsfläche schaffen. Das packed_vbs[]-Storage-Caching war eine legitime Gas-Spar-Design-Entscheidung — Cross-Contract-Reads, um jeden LP-Token-Saldo abzurufen, hätten jede yETH-Operation unerschwinglich teuer gemacht. Aber der Cache erzeugte Zustand, der von der tatsächlichen zugrunde liegenden Realität des Pools divergierte, und der Bug lag in wie diese Divergenz an Edge Cases gehandhabt wurde.

Die strukturellen Lehren:

  1. Gecachter Zustand hat Invariantenanforderungen separat von der zugrunde liegenden Source-of-Truth. Jeder Code-Pfad, der Supply, Balances oder Share-Berechnungen mutiert, muss auch darüber räsonieren, ob der Cache noch gültig ist — und ihn entweder explizit invalidieren oder die davon abhängigen Invarianten zusichern.
  2. Edge Cases mit Zero-Supply-Zuständen sind besonders gefährlich für Share-Preis-Berechnungen. Die Standard-Gegenmaßnahme — Dead-Shares-Minting beim Pool-Deployment, um zu verhindern, dass Supply jemals null erreicht — ist seit mindestens 2021 dokumentiert. Yearns maßgeschneiderter yETH-Pool wurde ohne dieses Muster deployt.
  3. Das „16 Wei"-Framing ist ein eindrucksvolles Kommunikationsartefakt — die 16-Wei-Einzahlung des Angreifers (0,00000000000000005 $), die 9 Mio. $ Extraktion produzierte, ist einer der höchsten ökonomischen Leverage-Exploits, die je aufgezeichnet wurden. Die Asymmetrie ist die wiederkehrende Lehre an der Grenze zwischen gas-effizienter Implementierung und adversarialer Sicherheit.

Dies war Yearns dritter größerer Vorfall in der Protokollgeschichte (nach dem iEarn-Legacy-Vertrags-Exploit im April 2023 und einem 2021er kleineren Vorfall). Die Reaktion des Teams — schnelle Pause, koordinierter Cross-Protocol-Clawback, transparente Post-Mortem — war eine der saubereren Incident-Response-Leistungen 2025.

Quellen & On-Chain-Belege

  1. [01]dlnews.comhttps://www.dlnews.com/articles/defi/yearn-finance-looted-for-9m-after-attacker-minted-trillions/
  2. [02]theblock.cohttps://www.theblock.co/post/381740/yearn-finance-9-million-yeth-exploit-confirms-partial-recovery-outlines-remediation
  3. [03]research.checkpoint.comhttps://research.checkpoint.com/2025/16-wei/

Verwandte Einträge