Cover Protocol Infinite Mint
Ein Solidity-Storage/Memory-Bug in Covers Blacksmith-Vertrag prägte 40 Trillionen COVER; Preis fiel von 700 USD auf unter 5. White-Hat gab alle Mittel zurück.
- Datum
- Opfer
- Cover Protocol
- Chain(s)
- Status
- Zurückerlangt
Am 28. Dezember 2020 erlitt das DeFi-Versicherungsprotokoll Cover Protocol einen Infinite-Mint-Exploit, der über 40 Trillionen COVER-Tokens aus seinem Blacksmith-Liquidity-Mining-Vertrag produzierte. Der Token-Preis kollabierte innerhalb von Stunden von ~700 USD auf unter 5 USD. Der Angreifer — Grap.Finance, mit White-Hat-Motivation — gab alle Mittel zurück mit einer öffentlichen Nachricht: „Nächstes Mal kümmert euch um euren eigenen Scheiß." Gesamt entzogen und zurückgegeben: ~9,4 Mio. USD.
Was geschah
Covers Blacksmith-Vertrag handhabte Liquidity-Mining-Belohnungen: Nutzer stakten LP-Tokens und akkumulierten COMP-Belohnungen über die Zeit. Der Vertrag verfolgte die Reward-Debt jedes Nutzers mittels einer State-Variable, die den aktuellen Pool-Zustand gegen den letzten geclaimten Checkpoint des Nutzers verglich.
Der Bug lebte darin, wie Solidity Memory- versus Storage-Referenzen für eine kritische State-Variable handhabte, die in der Reward-Berechnung verwendet wurde. Speziell: Der Vertrag wies eine Struct aus Storage einer Memory-Variable zu, modifizierte die Memory-Kopie und nahm an, die Änderungen würden persistieren — aber in Soliditys Semantik ist eine Memory-Kopie ein separater Wert, der nicht automatisch in den Storage zurückschreibt.
Der Angreifer erkannte, dass der Bug es erlaubte, wiederholt Reward-Accruals gegen veralteten State auszulösen — jeder Aufruf akkumulierte zusätzliche COVER-Belohnungen, als wäre die State-Mutation des vorherigen Claims nie geschrieben worden. Durch Schleifen der Operation prägte er 40.000.000.000.000.000.000 (40 Trillionen) COVER-Tokens und überwältigte vollständig das legitime Angebot.
Folgen
- Der COVER-Token crashte innerhalb einer Stunde um etwa 97%, als das frisch geprägte Angebot über 1inch und andere DEX-Aggregatoren verkauft wurde.
- Binance suspendierte den COVER-Handel innerhalb von Stunden nach dem Exploit.
- Der Angreifer — Grap.Finance, ein separates DeFi-Projekt — bekannte sich öffentlich über Twitter, behauptete, der Angriff sei eine White-Hat-Demonstration, und gab alle gestohlenen Mittel an ein Cover-kontrolliertes Multisig zurück.
- Die Grap.Finance-Nachricht — „Nächstes Mal kümmert euch um euren eigenen Scheiß." — wurde zu einem zitierten Moment der DeFi-Sicherheits-Kultur und wurde vielfach als Beispiel für White-Hat-Operationen als Community-Accountability zitiert.
- Cover Protocol kündigte eine Token-Migration zu einem neugestalteten Vertrag mit korrekter Memory/Storage-Behandlung an; das Projekt erholte sich nie vollständig zu seiner Vor-Vorfall-Marktposition und wurde schließlich von Yearn Finance übernommen.
Warum es wichtig ist
Der Cover-Vorfall ist einer der saubersten Fälle dafür, wie Soliditys Memory/Storage-Semantik eine andauernde Quelle hoch-impact Bugs ist. Die Trennung der Sprache zwischen Storage (persistent, kostet Gas) und Memory (transient, billiger) ist essenziell für effiziente Verträge, aber das Type-System warnt den Entwickler nicht, wenn das Zuweisen einer Storage-Struct an eine Memory-Variable eine Kopie statt einer Referenz produziert. Bugs dieser Klasse haben Exploits produziert bei:
- Cover Protocol (Dez 2020) — Infinite Mint.
- bZx (Sep 2020) — verwandter Memory-Handling-Bug in Flash-Loan-Logik.
- Mehrere kleinere Vorfälle 2021-2024.
Die defensiven Antworten umfassen:
- Statische Analyzer (Slither, Echidna), die verdächtige Storage-zu-Memory-Zuweisungen markieren.
- Linting-Regeln, die explizite
storage- odermemory-Keywords bei jeder Referenz verlangen. - Formale Verifikation von State-Mutations-Invarianten.
Die Grap.Finance-Antwort etablierte auch ein Muster, das im Laufe der Zeit häufiger wurde: andere DeFi-Projekte agieren als informelle Sicherheits-Polizei, indem sie Bugs in Protokollen ausnutzen und die Mittel zurückgeben, teils als PR und teils als echter Versuch, Schwachstellen zu demonstrieren, bevor bösartige Akteure sie ausnutzen können. Das Muster ist umstritten — es normalisiert „erst kompromittieren, dann fragen" — aber es hat nachweislich bei mehreren Gelegenheiten echtes Geld gerettet.
Quellen & On-Chain-Belege
- [01]mudit.bloghttps://mudit.blog/cover-protocol-hack-analysis-tokens-minted-exploit/
- [02]coindesk.comhttps://www.coindesk.com/markets/2020/12/28/cover-protocol-attack-perpetrated-by-white-hat-funds-returned-hacker-claims
- [03]nonseodion.medium.comhttps://nonseodion.medium.com/deep-dive-into-cover-protocols-december-28-2020-exploit-50e7966741c4