COLDCARD Wallets Suffer Mass Crypto Theft After RNG Flaw Allows Seed Reconstruction

A critical implementation error in COLDCARD hardware wallets enabled attackers to reconstruct wallet seeds and steal cryptocurrency from thousands of users. The flaw stemmed from an incorrect switch to the libsecp256k1 library, which inadvertently used the rng_get() function from libNgU for seed generation instead of proper hardware entropy. Depending on the model, seeds for Mk2 and Mk3 devices could be derived solely from UID, timer state, and generator history, while Mk4, Mk5, and Q models added limited extra entropy. On July 30, the attacker drained over 1,367 BTC worth approximately $88 million from 4,585 addresses in just 41 minutes. Coinkite released updated firmware, but affected users must also regenerate new seeds and consider additional protections such as passphrases. Other Coinkite products including TAPSIGNER, OPENDIME, and SATSCARD remain unaffected. The incident highlights how even well-tested cryptographic libraries can fail when integrated incorrectly.

HabrTranslated from Russian

Read at source

A major incident last week involved the mass theft of cryptocurrency from users of COLDCARD hardware wallets produced by Coinkite. Although cold wallets are designed to keep private keys offline and resistant to remote attacks, a flaw in the random number generation process allowed attackers to reconstruct wallet seeds for a large number of devices.

The root cause traces back to 2021 when Coinkite decided to replace its custom elliptic-curve cryptographic stack with the widely used libsecp256k1 library. During integration, developers mistakenly routed seed generation through the libNgU library’s rng_get() function. For COLDCARD Mk2 and Mk3 devices running firmware v4, the resulting seed depended only on the device UID, timer state, and prior generator calls, making reconstruction straightforward. Newer models added limited extra entropy that only marginally increased attacker effort.

Attackers were able to replicate the flawed generator on their own infrastructure and validate candidate seeds against public Bitcoin blockchain data. On July 30, the first large-scale operation drained more than 70 million dollars in roughly 41 minutes, targeting the richest wallets. By August 1, total losses reached 1,367 BTC across 4,585 addresses, equating to approximately 88 million dollars.

Coinkite published details of the vulnerability the same day and later released patched firmware. Users must both update their devices and generate fresh seeds; simply applying the firmware update is insufficient. Wallets that combine the generated seed with a passphrase or independently created entropy remain at lower risk. Products such as TAPSIGNER, OPENDIME, and SATSCARD are not affected.

The case demonstrates how a subtle coding error in a cryptographic component can undermine years of hardware security design, remaining undetected despite standard testing and code review processes.

Meridian digestThe week's most consequential security stories, distilled into one briefing.See the digest

More in Crypto & Financial Crime

Bitget Loses $351 Million in Record 2026 Crypto Theft After Attackers Forge Internal Transfers
Address Substitution Attacks Exploit Partial Address Checks in Crypto Wallets
Monero Web Wallet Built on Official monero-wallet-rpc Adds Digest Authentication, Two-Phase Transfers and BigInt Precision