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

DAO Maker Ungeschützte Init-Funktion

Eine ungeschützte init()-Funktion in DAO Makers Vesting-Contracts ließ einen Angreifer die Eigentümerschaft übernehmen und 4 Mio. $ aus Nutzer-Pools abziehen.

Datum
Chain(s)
Status
Mittel entwendet

Am 3. September 2021 verlor die Launchpad- und Token-Distributionsplattform DAO Maker rund 4 Millionen $ und betraf etwa 5.251 Nutzer. Eine ungeschützte init()-Funktion in DAO Makers Distributions-Contracts ließ den Angreifer den Contract neu initialisieren, die Eigentümerschaft übernehmen und eine Notfall-Withdraw-Funktion aufrufen, um Nutzergelder zu entwenden.

Was geschah

DAO Maker betrieb Token-Sale- und Vesting-Infrastruktur — den Nutzern zugewiesene Tokens und eingezahlte Gelder wurden in Distributions-Contracts gehalten, bis die Vesting-Pläne abgelaufen waren.

Der fatale Fehler war der kanonische Re-Invokable-Initializer-Bug: Die init()-Funktion des Distributions-Contracts — die den Eigentümer und kritische Parameter setzte — hatte keinen Schutz gegen einen erneuten Aufruf.

Der Angriff:

  1. Rief init() auf einem bereits deployten, finanzierten Distributions-Contract auf und übergab Parameter, die den Angreifer als Contract-Eigentümer festlegten.
  2. Mit der übernommenen Eigentümerschaft rief er die emergencyExit- / privilegierte Withdraw-Funktion des Contracts auf — legitim für den Eigentümer verfügbar — um Nutzergelder herauszuziehen.
  3. Wiederholt über die betroffenen Pools, mit einem Gesamtschaden von rund 4 Mio. $.

Folgen

  • DAO Maker bestätigte den Vorfall und verpflichtete sich, betroffene Nutzer zu entschädigen — aus Unternehmensreserven und Treasury.
  • Die kompromittierten Contracts wurden außer Betrieb genommen und durch ordnungsgemäß geschützte Versionen ersetzt.
  • Die gestohlenen Gelder wurden gewaschen; keine öffentliche Wiederherstellung.

Warum es wichtig ist

DAO Maker ist ein weiterer Eintrag in der Re-Invokable-Initializer-Linie — dem am häufigsten wiederholten katastrophalen Solidity-Pattern im Katalog:

  • Parity Multisig (2017) — re-invokables initWallet, 30 Mio. $ gestohlen + 150 Mio. $ eingefroren.
  • DODO (März 2021) — re-invokables init() in Crowdpools.
  • Punk Protocol (Aug. 2021) — re-invokables Initialize() per Delegatecall.
  • DAO Maker (Sept. 2021) — ungeschütztes init(), Übernahme der Eigentümerschaft.
  • Audius (2022) — re-invokables Governance-Initializer.

Über fünf Jahre exakt derselben Bug-Klasse, jeder Vorfall mit Millionen-Verlusten — obwohl die Behebung ein einziger gut dokumentierter einzeiliger Modifier ist (OpenZeppelins initializer). Die Wiederkehr ist die Lektion: Dass eine Branche eine Schwachstellenklasse kennt, hindert einzelne Teams nicht daran, sie auszuliefern. Jeder neue upgradefähige Contract eines Teams, das die Parity-/DODO-/Punk-Geschichte nicht verinnerlicht hat, ist eine neue Chance, den Guard wegzulassen.

DAO Maker ist auch bemerkenswert wegen der Nutzerzahl-Wirkung — rund 5.251 betroffene Nutzer — was zeigt, dass Launchpad-/Distributionsplattformen viele individuelle Nutzergelder in gemeinsamen Contracts bündeln, sodass ein einzelner Initializer-Bug zu einem Ereignis mit tausenden Opfern wird statt zu einem reinen Treasury-Verlust eines einzelnen Protokolls. Der Blast-Radius dieser Bug-Klasse skaliert mit dem Umfang an Nutzergeldern, die der anfällige Contract verwahrt — und Distributionsplattformen verwahren sehr viel.

Quellen & On-Chain-Belege

  1. [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-dao-maker-hack-september-2021
  2. [02]newsweek.comhttps://www.newsweek.com/dao-maker-hack-7m-stolen-defi-heist-1618785
  3. [03]rekt.newshttps://rekt.news/daomaker-rekt

Verwandte Einträge