Eine über vier Jahre unentdeckte Schwachstelle in der Firmware der Hardware-Wallet Coldcard hat einem Angreifer erlaubt, in weniger als einer halben Stunde rund 594 Bitcoin aus etwa 500 Wallets abzuräumen. Der Schaden liegt bei etwa 38 Millionen US-Dollar. Betroffen sind ausgerechnet Nutzer, die mit Selbstverwahrung auf ein Höchstmaß an Sicherheit gesetzt haben.
Der Hersteller Coinkite hat den Vorfall vorgestern öffentlich gemacht, nachdem das Research-Team des Zahlungsdienstleisters Block eine kritische Schwachstelle in der Seed-Erzeugung mehrerer Coldcard-Generationen gemeldet hatte. Die eigentliche Ursache liegt Jahre zurück und betrifft den Kern dessen, was eine Hardware-Wallet u. a. leisten soll, nämlich die Erzeugung eines wirklich zufälligen und damit unerratbaren Schlüssels.
Was genau passiert ist
In einem knapp 25-minütigen Fenster in den frühen Morgenstunden des 30. Julis wurden nach Analysen von Block und Chainalysis rund 594 Bitcoin aus etwa 500 Single-Signature-Wallets abgezogen. Der Angreifer verteilte die Beute über mehr als 1.300 Transaktionen und führte anschließend rund 562 Bitcoin auf einer einzigen Adresse zusammen. Auffällig ist die Reihenfolge. Laut Chainalysis nahm der Täter zuerst die wertvollsten Wallets ins Visier, darunter ein Opfer mit rund 1,8 Millionen US-Dollar. Das deutet darauf hin, dass er die Zieladressen vorher analysiert und priorisiert hat.
Coinkite hat bislang nicht förmlich bestätigt, dass exakt diese Schwachstelle den Diebstahl verursacht hat, und beschreibt die Untersuchung als laufend. Der zeitliche Zusammenfall zwischen Advisory und On-Chain-Bewegungen sowie das Muster der betroffenen Wallets machen die Schwachstelle nach Einschätzung mehrerer Sicherheitsforscher jedoch zur mit Abstand plausibelsten Erklärung. Block hält es zudem für möglich, dass weitere 695 ältere Transaktionen mit demselben On-Chain-Fingerabdruck zusammenhängen, was den potenziellen Gesamtschaden auf gut 1.082 Bitcoin heben würde.
Wie die Schwachstelle technisch entstand
Um den Fehler in den Coldcard Wallets zu verstehen, muss man wissen, wie eine Hardware-Wallet überhaupt einen Private Key erzeugt. Damit ein Private Key sicher ist, muss er völlig unvorhersehbar sein. Deshalb verwenden Hardware-Wallets spezielle Zufallszahlengeneratoren im Chip, sogenannte True Random Number Generators (TRNGs).
Diese Bausteine nutzen physikalische Prozesse als Zufallsquelle. Dazu gehört beispielsweise elektrisches Rauschen. Darunter versteht man winzige, zufällige Spannungsschwankungen, die in elektronischen Schaltkreisen ständig auftreten. Sie entstehen durch natürliche Vorgänge auf atomarer Ebene und lassen sich nicht exakt vorhersagen. Aus diesem Rauschen gewinnt der Zufallszahlengenerator sogenannte Entropie. In der Kryptografie ist Entropie ein Maß dafür, wie viel echte Unvorhersehbarkeit in einer Zahl steckt. Je mehr Entropie vorhanden ist, desto schwieriger ist es für einen Angreifer, einen Schlüssel zu erraten oder nachzurechnen.
Das elektrische Rauschen liefert in diesem Zusammenhang also den Zufall und die Entropie misst dessen Qualität. Der TRNG sammelt viele dieser zufälligen Schwankungen und wandelt sie in eine lange Folge von Nullen und Einsen um. Aus diesen Zufallsdaten wird anschließend der Private Key berechnet.
Genau das geschah aber nicht. Durch einen Konfigurationsfehler beim Kompilieren zog die Firmware still und leise einen Software-Zufallsgenerator aus dem MicroPython-Projekt heran, einen deterministischen Algorithmus namens Yasmarang. Ein solcher Pseudozufallsgenerator liefert nur dann unvorhersehbare Werte, wenn er mit einem geheimen Startwert gefüttert wird. Im Fall von Coldcard stammte dieser Startwert aus nicht geheimen Chipdaten wie der eindeutigen Geräte-ID und Werten aus Timer-Registern. Wer diese Logik kennt, kann den Zufall reproduzieren und damit das schaffen, was eigentlich als unmöglich gilt, nämlich Private Keys erraten.
Warum 40 Bit ein Totalschaden sind
Ein Bitcoin-Seed soll rund 128 Bit an Sicherheit bieten. Das entspricht einer Zahl von Möglichkeiten, die selbst mit sämtlicher Rechenleistung der Welt nicht durchprobierbar ist. Durch den Fehler sank dieser Wert auf Coldcard Mk3 nach vorläufiger Schätzung auf etwa 40 Bit. Das sind rund 1,1 Billionen Kombinationen, eine Menge, die ein Angreifer mit passender Ausrüstung offline durchrechnen kann. Dass die Firmware das Ergebnis anschließend noch mit SHA256 hasht, ändert daran nichts, denn ein Hash kann keine Zufälligkeit hinzufügen, die im Ausgangsmaterial nicht vorhanden ist. Aus höchstens 2 hoch 40 möglichen Eingaben entstehen höchstens 2 hoch 40 mögliche Ausgaben.
Welche Coldcards betroffen sind
Am stärksten betroffen sind Mk2- und Mk3-Geräte, deren Seed auf Firmware 4.0.0 bis 5.0.3 erzeugt wurde. Coinkite warnte zunächst nur für die Mk3-Reihe, erweiterte die Warnung dann aber auf Mk4, Mk5 und das Modell Q. Diese neueren Geräte mischen zusätzlich Zufall aus den Secure Elements SE1 und SE2 bei, behielten davon aber nur rund vier Byte, also 32 Bit. Das hob die effektive Sicherheit auf schätzungsweise 72 Bit an, blieb damit aber weit unter dem Ziel von 128 Bit. Die älteren Mk1-Geräte sind nicht betroffen, ebenso wenig die Produkte Tapsigner, Opendime und Satscard, da sie auf einer anderen Codebasis laufen.
Wichtig ist ein Punkt, der leicht übersehen wird. Der Fehler steckt im Seed, nicht im Gerät. Wer einen betroffenen Seed exportiert und in eine andere Wallet importiert hat, bleibt gefährdet. Ein bloßes Firmware-Update repariert einen bereits erzeugten Seed nicht. Betroffene müssen einen völlig neuen Seed auf aktualisierter Firmware erzeugen und ihre Guthaben dorthin migrieren. Nach Angaben von Block war der fehlerhafte Zufall außerdem nicht auf die reine Wallet-Erstellung beschränkt, sondern floss auch in Paper-Wallet-Schlüssel, Seed-Splitting-Masken, Klon-Schlüssel und die Zugangsdaten der Key-Teleport-Funktion ein.
Coldcard-Nutzer müssen dringend handeln
Coldcard hat seine größte Nutzerbasis zwar in den USA, aber auch in der DACH-Region können Besitzer einer Wallet von Coldcard betroffen sein. Wer seinen Seed auf einem betroffenen Coldcard-Gerät erzeugt hat, sollte Tempo mit Sorgfalt verbinden. Ob der Key tatsächlich kompromittiert ist, lässt sich von außen kaum sicher sagen. Selbst wenn das Guthaben noch unangetastet ist, ist das keine Entwarnung, denn ein Angreifer kann einen verwundbaren Schlüssel längst berechnet haben und erst zu einem späteren Zeitpunkt zugreifen. Genau deshalb sollte man nicht abwarten, sondern im Zweifel von einer Kompromittierung ausgehen und handeln.
Zuerst sollte geprüft werden, ob die Wallet überhaupt in die Risikogruppe fällt. Entscheidend ist die Firmware, auf der der Seed erzeugt wurde, nicht die aktuell installierte Version. Wer beim Erstellen mindestens fünfzig unabhängige, privat gehaltene Würfelwürfe beigesteuert oder eine ausreichend starke BIP-39-Passphrase verwendet hat, gilt nach jetzigem Stand als geschützt. Wer das nicht getan hat oder unsicher ist, behandelt den Seed besser als kompromittiert.
Der nächste Schritt ist die Migration auf einen frisch erzeugten Seed, dessen Zufall aus einer intakten Quelle stammt. Bei einem aktuellen Coldcard installiert man dafür die Notfall-Firmware, Version 5.6.0 für Mk4 und Mk5 oder 1.5.0Q für das Modell Q, und legt darauf eine völlig neue Wallet an. Ein Firmware-Update kann einen bereits erzeugten Seed nicht reparieren, die Erstellung eines neuen Seeds ist zwingend.
Wer nicht auf ein neues Gerät warten will oder dem eigenen Coldcard vorerst nicht mehr vertraut, kann kurzfristig auf eine Software-Wallet ausweichen. Sowohl Bitcoin Core als auch Electrum erzeugen ihre Seeds über die Zufallsquellen des Betriebssystems und sind vom Coldcard-Fehler nicht betroffen. Als Zwischenlösung, um Guthaben rasch aus einer möglicherweise verwundbaren Wallet herauszuholen, sind beide eine solide und kostenlose Option. Für die dauerhafte Verwahrung größerer Beträge bleibt für viele Nutzer eine dedizierte Hardware-Wallet die bessere Wahl. Einen Überblick über geeignete Geräte verschiedener Hersteller findest du in unserem Hardware-Wallet-Vergleich.
Beim eigentlichen Umzug zahlt sich Ruhe aus. Der neue Seed und eine etwaige Passphrase sollten getrennt voneinander verwahrt werden. Nach einem Neustart sollte der Wallet-Fingerprint überprüft werden. Zudem sollte man zunächst eine kleine Testtransaktion versenden, bevor man den Rest verschiebt. Coinkite warnt ausdrücklich davor, den Prozess zu überstürzen, weil Fehler bei der Migration am Ende teurer werden können als die Schwachstelle selbst.

