GolemTechNews
Tech

Coldcard : la faille qui a vidé 110 millions de dollars en bitcoins

Un bug de génération d'aléatoire dormait depuis mars 2021 dans le portefeuille physique le plus réputé du monde Bitcoin. Des pirates l'ont réveillé le 30 juillet.

La rédaction GolemTech News généré le 2026-08-04 6 min de lecture 6 sources
Coldcard : la faille qui a vidé 110 millions de dollars en bitcoins
Illustration : GolemTech News (IA)

Le nom Coldcard circulait jusqu'ici dans les cercles Bitcoin comme une garantie : appareil hors ligne, code auditable, pas de Bluetooth, pas de compromis. Depuis le 30 juillet 2026, il circule pour une tout autre raison. Des attaquants ont commencé à vider des portefeuilles Coldcard en série, à un rythme qui a d'abord laissé la communauté incrédule : 594 bitcoins, environ 38 millions de dollars, déplacés depuis à peu près 500 adresses en 25 minutes. Puis une deuxième vague. Puis une troisième. Bloomberg et franceinfo ont fini par parler de plus de 110 millions de dollars dérobés sur plus de 5 000 adresses ; Fortune évoque 116 millions. Le décompte n'est pas stabilisé, et c'est en soi une information.

Ce n'est pas un piratage de plateforme d'échange. Personne n'a forcé de serveur. Le vol a été rendu possible par trois lignes de code écrites il y a cinq ans.

Le bug : un générateur d'aléatoire qui n'avait plus rien d'aléatoire

Tout portefeuille Bitcoin repose sur une graine (seed) : une suite de mots dérivée d'un nombre tiré au hasard. Si ce hasard est vraiment imprévisible, personne ne peut retrouver la clé, même avec toute la puissance de calcul de la planète. Si ce hasard est prévisible, la clé n'est plus qu'une devinette.

Le 1er mars 2021, un commit du firmware Coldcard remplace l'appel ckcc.rng_bytes — qui allait chercher le générateur matériel de la puce STM32 — par ngu.random.bytes. Sur le papier, même service. En pratique, cet appel passait par la bibliothèque libngu, dont une vérification défaillante ne testait que l'existence d'une macro de configuration, pas son activation. Résultat : la production basculait silencieusement sur Yasmarang, le générateur logiciel déterministe de MicroPython, alimenté par l'identifiant unique de la puce et l'état du timer.

Traduction : au lieu d'un espace de clés astronomique, quelques milliards de possibilités. De quoi régénérer les graines candidates hors ligne, en dériver les adresses Bitcoin correspondantes, et comparer avec la blockchain publique — qui est, par construction, consultable par tout le monde. Les attaquants n'ont pas eu besoin de toucher un seul appareil. Ils ont fait leurs calculs chez eux, puis sont allés se servir.

Qui est touché, exactement

Le périmètre confirmé est précis, et c'est la seule bonne nouvelle du dossier :

  • appareils Coldcard Mk2 et Mk3 ;
  • graines générées avec les firmwares v4.0.0 à v5.0.3 (l'avis officiel de Coinkite cite 4.0.1 à 5.0.3) ;
  • portefeuilles sans passphrase : le mot de passe additionnel BIP39, souvent négligé, ajoute une entropie que l'attaque ne reconstitue pas.

Ce qui n'est pas touché : les graines générées ailleurs et simplement importées, celles créées avec les modèles plus récents, et les configurations multisig où les autres cosignataires viennent d'appareils différents.

Point douloureux : mettre à jour le firmware ne répare rien. Une graine déjà produite sous le bug reste faible pour toujours. La seule sortie, c'est de générer une nouvelle graine sur un appareil sain et d'y déplacer les fonds — une opération que beaucoup de détenteurs de long terme n'avaient plus faite depuis des années, parfois avec des sauvegardes métalliques gravées, des héritages organisés, des coffres bancaires.

Les chiffres, dans l'ordre

  • 1er mars 2021 : le commit fautif entre dans le code.
  • 30 juillet 2026 : première vague, ~594 BTC (≈38 M$) siphonnés depuis environ 500 adresses en 25 minutes.
  • 41 minutes : la durée d'une des vagues les plus brutales, 1 083 BTC vidés sur 1 196 adresses.
  • 31 juillet : Coinkite publie son avis de sécurité et diffuse des firmwares correctifs pour Mk3, Mk4, Mk5 et Coldcard Q en moins de deux jours.
  • 2 août : l'entreprise annonce avoir envoyé des e-mails d'alerte à toutes les adresses joignables via sa boutique et sa newsletter.
  • Total estimé : de 89 M$ (1 367 BTC, 4 585 adresses) à 110-116 M$ selon les décomptes, sur plus de 5 000 adresses.

À l'échelle du secteur, ça s'ajoute à une année déjà chargée : près d'un milliard de dollars de cryptoactifs volés depuis janvier 2026, tous vecteurs confondus.

Pourquoi personne ne l'a vu pendant cinq ans

C'est la question qui fâche. Coldcard est open source, son firmware est reproductible, sa base d'utilisateurs compte parmi les plus paranoïaques du web. Et pourtant.

Un générateur d'aléatoire cassé est presque invisible à l'œil nu. Les sorties ressemblent à du bruit, passent les tests statistiques rapides, produisent des graines qui fonctionnent parfaitement. Rien ne plante, rien ne s'affiche en rouge. Il faut aller vérifier que l'appel atteint bien le périphérique matériel — un test que les audits de code lisent rarement jusqu'au bout, parce qu'il traverse trois couches : Python, bibliothèque C, registre matériel.

S'ajoute une hypothèse discutée par Bitcoin Magazine : l'exploitation aurait été facilitée par des outils d'IA capables d'abattre en quelques jours le travail d'analyse de code et de force brute ciblée qui aurait pris des mois auparavant. À prendre avec des pincettes — aucune preuve publique ne l'établit — mais l'hypothèse dit quelque chose de l'époque. Les vieux bugs dormants deviennent une matière première.

Rodolfo Novak, patron de Coinkite, a publié des excuses sur X, disant assumer « l'entière responsabilité du bug de firmware ». L'entreprise a suspendu ses livraisons et détruit les stocks concernés. C'est une réaction rapide et à peu près exemplaire — elle ne rendra pas un satoshi.

Ce que ça change pour l'auto-conservation

Le slogan not your keys, not your coins pousse depuis quinze ans à sortir ses bitcoins des plateformes pour les mettre sur un appareil dédié. L'affaire Coldcard ne l'invalide pas : les faillites de plateformes ont coûté infiniment plus cher. Mais elle déplace le risque là où on ne le regardait pas.

Quelques enseignements concrets :

  • La passphrase n'est pas un gadget. Ceux qui en avaient une sont passés à travers.
  • Le multisig avec des matériels de marques différentes protège précisément contre ce type de défaillance unique. Il est pénible à mettre en place. Il vient de démontrer son intérêt.
  • Générer sa graine à partir d'une source externe (dés, pièce de monnaie, entropie fournie par l'utilisateur — une option que Coldcard propose d'ailleurs) réduit la dépendance au générateur embarqué.
  • Une adresse Bitcoin est publique et permanente. Toute faiblesse cryptographique devient exploitable rétroactivement, sur des fonds immobiles depuis des années. Ce n'est pas vrai d'un mot de passe bancaire.

Et maintenant

Si vous avez un Coldcard Mk2 ou Mk3 dont la graine a été créée sous un firmware 4.x ou 5.0.x sans passphrase, il n'y a pas de délai de réflexion : nouvelle graine, nouvelles adresses, transfert. Les attaquants disposent déjà de la liste des adresses vulnérables — ils travaillent par ordre de solde décroissant.

Pour le reste du secteur, la vraie question est celle des audits. On sait auditer une logique métier ; on sait beaucoup moins vérifier qu'un appel de fonction atteint réellement le silicium qu'il prétend interroger. Cinq ans de portefeuilles vendus comme la référence du stockage à froid tenaient à une macro mal testée.

Sources

  1. Franceinfo — Plus de 110 millions de dollars en bitcoin volés à cause d'une erreur de codage
  2. The Hacker News — Coldcard Hardware Wallet Flaw Linked to Bitcoin Theft
  3. Coinkite Blog — Coldcard Security Advisory
  4. Blockhead — Coldcard shipped with broken randomness for five years
  5. Fortune — What we know about the Coldcard exploit
  6. Infosecurity Magazine — Coldcard Users Lose $89m

À lire aussi