Coldcard Hardware Wallet Flaw Tied to More Than $88 Million in Bitcoin Theft
AI مارکیٹ کا خلاصہ
A disclosed Coldcard hardware wallet key-generation flaw reportedly enabled attackers to steal over $88M in BTC, with the exploit described as ongoing and funds aggregating on-chain. While not a protocol-level Bitcoin issue, the incident can pressure near-term sentiment by elevating custody and operational risk, potentially prompting accelerated self-custody migrations, heightened scrutiny of hardware wallet supply chains, and increased monitoring of related addresses by exchanges and compliance teams.
اثر کی سطح
● ہائی
متاثرہ اثاثے
BTC/USDT+0.92%
AI تجزیاتی سمجھ · BTC/USDTAI تجزیاتی سمجھ
▼ Bearish
ابھی ٹریڈ کریں
⚠️ AI سے تیار کردہ تجزیاتی سمجھ خبروں کے مواد پر مبنی ہے اور صرف معلوماتی مقاصد کے لیے فراہم کی گئی ہے۔ یہ سرمایہ کاری کا مشورہ نہیں ہے اور نہ ہی BingX کے خیالات کی نمائندگی کرتی ہے۔ سرمایہ کاری میں رسک شامل ہے۔ براہ کرم ذمہ داری سے ٹریڈ کریں۔
A security flaw affecting Coldcard hardware wallets has been linked to losses now exceeding $88 million, with the campaign still active.
Beosin said that on July 31, around 500 Coldcard devices were compromised, leading to the theft of 594 BTC—valued at roughly $38 million at the time. Coinkite, the manufacturer of Coldcard, later confirmed a vulnerability in the wallet key generation process that impacts multiple product generations, including Coldcard Mk2, Mk3, Mk4, Q, and Mk5. Users are urged to move funds to a new address as soon as possible.
I. Vulnerability analysis
Beosin's review of Coldcard firmware commit history points to changes in commit 37e4af5451c260c1e7d429fe8972c4cb5e68ee59, where code related to MK4 configuration was updated. In mpconfigboard.h, the firmware sets:
#define MICROPY_HW_ENABLE_RNG (0)
On the MicroPython STM32 implementation, this macro determines whether the default hardware random number generator (RNG) binding is compiled and used as the backend for the generic rng_get(). Setting it to 0 disables the default hardware RNG path, with comments indicating the developer intended to implement RNG handling separately.
In Coldcard's custom rng.h, only two MicroPython objects are declared:
MP_DECLARE_CONST_FUN_OBJ_0(pyb_rng_get_obj);
MP_DECLARE_CONST_FUN_OBJ_1(pyb_rng_get_bytes_obj);
The corresponding implementations call hardware RNG functions when using pyb_rng_get* (or internal random_buffer()). The issue arises in wallet creation: the wallet initialization flow in shared/seed.py calls generate_seed(), which then enters shared/random.py. Earlier versions of random.py explicitly relied on ngu.random and used random.bytes (ngu.random.bytes) for entropy during initialization, rather than pyb.rng().
Because MICROPY_HW_ENABLE_RNG is set to 0, wallet seed generation did not consistently use the STM32 hardware RNG. Instead, it could fall back to MicroPython's stm32/rng.c behavior, where rng_get() resolves to pyb_rng_yasmarang when hardware RNG is disabled. Beosin described pyb_rng_yasmarang as a pseudorandom number generator unsuitable for hardware wallet seed generation, as it can be brute-forced.
Coinkite has since made changes to exclude stm32/rng.c in the Makefile, stating: "Do not compile MicroPython's fallback PRNG." The updated build rules also add a guard:
Dpyb_rng_yasmarang=errordonotwantthis
and instruct the build system to "SKIP stm32/rng.c", relying on a board-specific rng.c to provide rng_get().
II. Stolen funds tracking
Beosin reports that funds from multiple victim wallets have been consolidated into a handful of aggregation addresses, with no further laundering observed yet. Based on threat intelligence and on-chain behavior analysis, Beosin Trace identified the following aggregation addresses:
bc1qq85v2c926eg6pgxhwp6q7lf6cnsz80qs3fcu9r (562 BTC)
bc1qx76cae2706qd5q576feh7xq8rfcsjpf2htfhe3 (398.47 BTC)
Beosin also flagged additional addresses showing a similar consolidation pattern that had not yet moved funds further:
bc1q8jy96fe5lf8vfugydnte3cguk92gpev7kwtp3q (89.62 BTC)
bc1q0rvn88w08j75k4h48lf9fvhan7unjp7vjf5q6m (64.9 BTC)
bc1qtfrwa4j6rmj9rsgspv6a0yjumkg39js2numu75 (45.9 BTC)
bc1qmd5m5ktv7m5ffujxv4248fxv36myvdx79n8jp6 (30.18 BTC)
Beosin said it continues to monitor additional aggregation addresses and related fund movements as the attacks persist.
III. Takeaways
Beosin attributes the incident to an implementation mistake in the seed-generation process, where a pseudorandom number generator was used at a critical step. The firm said the development team should conduct ongoing, comprehensive code testing and auditing. Coldcard users are advised to move assets promptly and monitor future security updates from Coinkite.
Beosin describes itself as a blockchain security and regulatory compliance technology provider offering services including pre-launch smart contract audits, real-time security risk monitoring and blocking, asset recovery, virtual asset AML, and investigative tracing. The company said it has delivered compliance products and security services to regulators and law enforcement in more than 20 countries and regions, over 200 virtual asset service providers, and more than 4,500 Web3 projects.