Introduction
Le 30 juillet 2026, un attaquant non identifié a balayé 1 196 adresses Bitcoin en moins de trois quarts d'heure, emportant 1 082 bitcoins pour environ 70 millions de dollars au cours du moment. Les estimations les plus récentes portent le total à plus de 88 millions de dollars, répartis sur 4 585 adresses compromises. Ce n'était pas du phishing, ni de l'ingénierie sociale : c'était le résultat prévisible d'un générateur de nombres aléatoires défaillant, présent dans le firmware du portefeuille matériel Coldcard depuis mars 2021.
Une macro mal évaluée, cinq ans de vulnérabilité silencieuse
Le Coldcard est produit par la société canadienne Coinkite. La faille remonte à une erreur d'intégration firmware : la variable de configuration MICROPY_HW_ENABLE_RNG était positionnée à zéro dans le profil de production. La bibliothèque libngu testait l'existence de la macro plutôt que sa valeur effective, faisant silencieusement basculer le build sur le PRNG logiciel de MicroPython — un algorithme nommé Yasmarang — au lieu du générateur hardware de la puce STM32.
Ce PRNG de secours s'initialisait uniquement à partir de l'identifiant unique du chip et de registres timer, sans collecte d'entropie fraîche après l'initialisation. L'entropie effective tombait ainsi à environ 40 bits sur les modèles Mk3, et 72 bits sur les Mk4, Mk5 et Q, contre 128 bits exigés pour une phrase secrète BIP-39 standard. La différence est considérable : chaque bit d'entropie manquant divise par deux l'espace de recherche pour un attaquant.
De la faiblesse mathématique à l'exploitation en temps réel
Un attaquant connaissant la plage d'entrées du PRNG peut reproduire hors ligne tous les flux de sortie candidats, dériver les adresses Bitcoin correspondantes, puis les croiser avec les données publiques de la blockchain pour identifier celles qui détiennent des fonds. Galaxy Research, qui a cartographié l'attaque, a confirmé ce schéma d'exploitation. Environ 600 adresses ont été signalées aux autorités fédérales américaines. Les modèles concernés couvrent les versions firmware 4.0.0 à 4.1.9 sur Mk2 et Mk3, et toutes les versions antérieures à 5.6.0 sur Mk4 et Mk5.
Un correctif aux limites explicites
Coinkite a publié des mises à jour d'urgence le 31 juillet pour tous les modèles concernés. L'avertissement qui les accompagne est sans ambiguïté : installer le correctif ne répare pas une seed existante. Les utilisateurs doivent générer une nouvelle seed sur firmware patché et transférer leurs fonds vers les nouvelles adresses. Seuls ceux ayant eu recours à des jets de dés physiques — au moins cinquante lancers indépendants — lors de la création initiale de leur wallet sont hors de danger.
Ce que les équipes IT doivent en retenir
Cet incident illustre une classe de vulnérabilités particulièrement redoutable : les failles silencieuses, sans anomalie détectable pendant des années, dont l'exploitation devient quasi-instantanée une fois les conditions réunies. La qualité des sources d'aléatoire est un prérequis absolu pour tout système cryptographique, qu'il s'agisse de wallets matériels, de modules HSM d'entreprise ou de générateurs de certificats TLS.
Pour les RSSI et architectes de sécurité, la leçon est directe : les paramètres firmware liés à la génération de clés doivent faire l'objet de tests d'intégration explicites — pas de simples vérifications de présence de macros. Chaque mise à jour de toolchain devrait déclencher une revue des bibliothèques cryptographiques embarquées. Le temps entre la découverte d'une clé faible et son exploitation tend vers zéro : 41 minutes l'ont rappelé brutalement.

