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 № 191Smart-Contract-Bug

Sonne Finance Donation-Attack

Sonne Finance verlor 20 Mio. $ auf Optimism durch eine 'Donation Attack' — ein bekannter Compound-v2-Fork-Exploit in der Lücke zwischen Deploy und Seed.

Datum
Chain(s)
Status
Mittel entwendet

Am 14. Mai 2024 verlor das Optimism-basierte Lending-Protokoll Sonne Finance rund 20 Millionen Dollar an eine lehrbuchartige „Donation Attack" — eine bekannte Schwachstellenklasse in Compound-v2-Forks, die über ein halbes Dutzend Protokolle hinweg kumulativ über 50 Mio. $ Verluste verursacht hat.

Was geschah

Der Markt-Deployment-Ablauf von Compound v2 hat zwei Schritte:

  1. Deploye einen neuen Marktvertrag (z. B. cVELO für VELO-Sicherheit).
  2. Seede den Markt mit einer initialen Einzahlung, die die Wechselkursrate zwischen dem zugrunde liegenden Token und dem cToken festlegt.

In einer Single-Transaction-Batch-Bereitstellung ist dies sicher. In separate Transaktionen aufgeteilt in einem permissionless Setting ist es exploitbar.

Sonnes Marktauflistungsprozess teilte das Deployment in mehrere Transaktionen auf, um den Governance-Flow zu ermöglichen. Zwischen den beiden Schritten:

  1. Der Angreifer Flash-borgte 35,5M VELO.
  2. Sie transferierten VELO direkt an den leeren soVELO-Vertrag (eine „Donation" — kein Minting, nur ein roher Token-Transfer).
  3. totalCash des soVELO-Vertrags stieg; sein totalSupply an cTokens blieb null.
  4. Der erste legitime Einzahler — oder der Angreifer selbst — konnte dann ein einziges soVELO einzahlen und mit der gesamten totalCash-Bilanz gutgeschrieben werden, aufgrund der defekten Wechselkursberechnung in der exchangeRateStored-Funktion des Compound-v2-Forks unter Bedingungen, in denen Supply ungleich null, aber Gesamteinzahlungen null-abgeleitet sind.

Durch Wiederholung des Manövers über mehrere neue Märkte entzog der Angreifer ~20 Mio. $ an Einlagen, bevor Sonnes Team aufholte.

Nachwirkungen

  • Sonnes Team erkannte den Exploit etwa 25 Minuten nach der ersten Angriffstransaktion.
  • Sie pausierten betroffene Märkte und boten eine 10%-Whitehat-Bounty an. Der Angreifer lehnte ab und wusch über Tornado Cash.
  • Sonne Finance wickelte schließlich die Lending-Operationen auf Optimism ab.

Warum es zählt

Der Donation Attack auf Compound-v2-Forks ist seit Jahren im kanonischen Compound-Repository dokumentiert und gepatcht. Jeder Fork, der ohne den integrierten Marktbereitstellungs-Batch ausgeliefert wird — einschließlich Hundred Finance (zweimal), Midas Capital, Onyx Protocol und andere — wurde oder wird durch dasselbe Muster exploitet werden.

Es ist die sauberste Illustration dafür, warum das Forken einer sicherheitsrelevanten Codebasis nicht dasselbe ist wie das Erben ihrer Sicherheit: Forks müssen die Sicherheitspatches des Upstreams und dessen Annahmen zur sicheren Bereitstellung nachverfolgen. Die Kosten des Auslassens dieses Schritts sind in Dollar gut dokumentiert.

Quellen & On-Chain-Belege

  1. [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-sonne-finance-hack-may-2024
  2. [02]certik.comhttps://www.certik.com/resources/blog/sonne-finance-incident-analysis
  3. [03]medium.comhttps://medium.com/@SonneFinance/post-mortem-sonne-finance-exploit-12f3daa82b06

Verwandte Einträge