Worked example · 2026-07
Coldcard — a 2021 library migration left an RNG config check that tested whether a setting existed but not whether it was on, silently dropping seed entropy from 128 bits to 40, and five years of seeds were swept — Coldcard / Coinkite (Bitcoin) — 2026-07-30/31 onward, ongoing
Summary
Coldcard, made by Coinkite, is a widely used Bitcoin hardware wallet. Its security model rests on generating recovery seeds on-device using the STM32 hardware random number generator.
During a software-library migration in 2021, a configuration check regressed: the code verified that the RNG setting existed but not that it was enabled. Seed generation therefore fell back, silently and without any user-visible error, to a software PRNG seeded from predictable inputs — a chip identifier similar to a serial number, and internal clock values associated with startup timing.
The result was a catastrophic entropy collapse. Against a 128-bit design floor, effective entropy fell to approximately 40 bits on Mk3 and approximately 72 bits on Mk4, Mk5 and Q devices. At 40 bits, the seed space is small enough to enumerate offline; the attacker never needs the device.
The flaw entered with firmware 4.0.1 in March 2021 (Mk3 affected through 4.1.9) and persisted until Coinkite shipped fixes on 2026-07-31 at 09:33 EDT: Mk3 → 4.2.0+, Mk4 / Mk5 → 5.6.0+, Q → 1.5.0Q+. TAPSIGNER, OPENDIME and SATSCARD are unaffected, running a different codebase. Coinkite destroyed its remaining inventory of vulnerable devices.
Exploitation began on 2026-07-30/31. The opening sweep took 594 BTC (~$38M) from about 500 wallets in 25 minutes; across roughly 41 minutes the wave reached 1,083 BTC (~$70M) over ~1,196 addresses, with the attacker working largest wallets first — about $30M inside 10 minutes. Three waves were analysed after the fact. A fourth wave was detected while it was still running, on 2026-08-03, which allowed some victims to escape by fee replacement, outbidding the attacker's sweep transactions.
As of 2026-08-04, Galaxy Research reports 1,596 BTC (~$100M) confirmed stolen across ~7,300 addresses, plus **459 BTC ($30M)** suspected in the unconfirmed fourth wave. About 600 attacker addresses are identified, ~90% of the stolen coins remain unmoved, and 73 victims are assisting recovery. The exploit remains active.
Timeline (UTC)
| When | Event | OAK ref |
|---|---|---|
| 2021-03 | Firmware 4.0.1 ships. A library migration leaves an RNG configuration check that tests whether the setting exists, not whether it is enabled; seed generation silently falls back from the STM32 hardware RNG to a software PRNG seeded on chip ID and startup clock values | T11.004 defect introduced |
| 2021-03 → 2026-07-31 | Five years four months of seed generation at ~40 bits (Mk3) / ~72 bits (Mk4, Mk5, Q) effective entropy against a 128-bit floor | (standing exposure) |
| 2026-07-30/31 | First sweep: 594 BTC (~$38M) from ~500 wallets in 25 minutes; |
T11.004 → T5.001 |
| 2026-07-31 09:33 EDT | Coinkite ships fixed firmware: Mk3 4.2.0+, Mk4/Mk5 5.6.0+, Q 1.5.0Q+; states that updating firmware does not change or repair an existing seed | (vendor response) |
| 2026-08-01 → 08-02 | Waves 2 and 3, analysed after the fact | T5.001 |
| 2026-08-03 | Wave 4 detected while occurring; some victims escape by fee replacement, outbidding the attacker's sweeps | (live contest) |
| 2026-08-04 | Galaxy Research: 1,596 BTC (~$100M) confirmed across ~7,300 addresses, |
(analysis / enforcement) |
| 2026-08-04 | Attacker-side movement remains minimal: a single 64.9 BTC deposit to Wasabi and 200 ETH to Tornado Cash; beyond initial consolidation, TRM observes one further consolidation hop rather than any attempt at layering or mixing | T7.001 (limited) |
| 2026-08-05 | TRM Labs publishes independent figures: |
(analysis) |
| ongoing | Exploit remains active; every unmigrated seed generated on affected firmware stays at risk | (open) |
What defenders observed
- Pre-event (the config check tested existence, not state). The entire loss traces to a check that asked the wrong question. This is the highest-value generalisable finding: a configuration assertion must verify the effective runtime state, not the presence of a key in a config structure. A hardware-RNG health check that reads back and statistically tests actual output — rather than confirming a flag is set somewhere — would have failed loudly in March 2021 (M23).
- Pre-event (silent fallback is the wrong failure mode for a security primitive). The device degraded from hardware to software entropy without any error, warning, or log. For a security-critical primitive the correct behaviour is to refuse to generate a seed at all rather than to generate a weak one. Fail-closed on entropy is a design rule this case argues for unusually strongly.
- Pre-event (defence in depth actually decided outcomes here). Users who folded in ≥50 independent dice rolls, who set a BIP-39 passphrase, or who held funds in multisig where the weak seed was one key of N were protected. These are the measures normally dismissed as excessive; in this incident they were the whole difference. Guidance to high-value self-custody users should be revised on the strength of a real case rather than a hypothetical one (M11, M22).
- Pre-event (entropy cannot be verified from outside). A weak key produces addresses and signatures indistinguishable from a strong key at the consensus layer. There is no on-chain monitoring, no analytics product, and no exchange screening that detects this before exploitation. That property is what makes T11.004 uniquely dangerous among custody classes, and it means the only real controls are at generation time.
- At-event (largest wallets first, at elevated fixed fees). The sweep was automated against a precomputed key list, prioritised by balance, and used raised fixed fees for inclusion. Balance-ordered draining across thousands of unrelated addresses in minutes is a strong cohort signature and is precisely the shape a disclosure-triggered mass sweep takes.
- At-event (fee replacement worked as a live defence). In wave 4, victims who were watching outbid the attacker's sweep transactions and rescued funds. This is a genuinely novel and reusable observation: during an active mass-sweep against known-weak keys, RBF contention is a real-time mitigation for anyone monitoring their own addresses, and it argues for at-risk users to be watching mempool activity against their addresses rather than only their balances.
- Response (patching is not remediation, and the gap is dangerous). "Update your firmware" is the instruction users are conditioned to follow and it does nothing here. Vendors disclosing a key-generation defect must lead with migration, not patching, because the natural user response closes no exposure at all.
- Response (traceability is the residual lever). ~90% of proceeds unmoved, ~600 attacker addresses mapped, and material handed to federal law enforcement and exchanges. As with several July cases, prevention failed and attribution infrastructure held.
Public references
[cryptotimescoldcard0804]— The Crypto Times, "Coldcard Hack Losses Hit $100M With 1,596 BTC Stolen in Ongoing Attack" (the 2026-08-04 Galaxy Research figures: 1,596 BTC / ~$100M confirmed across ~7,300 addresses, ~459 BTC / ~$30M suspected in wave 4, ~2,055 BTC / ~$130M total potential, ~600 attacker addresses, ~90% unmoved, 73 victims assisting, wave 4 detected while occurring on 08-03 with victims escaping via fee replacement, and the "programmatic / probably orchestrated with a large language model" characterisation): https://www.cryptotimes.io/2026/08/04/coldcard-hack-losses-hit-100m-with-1596-btc-stolen/[newsbitcoincoldcard2026]— Bitcoin.com News, "The Coldcard Exploit Explained: Who Lost Bitcoin and Who's at Risk" (the 2021 library-migration root cause — a config check verifying that the RNG setting existed rather than that it was enabled — the fallback to predictable chip-ID and startup-clock inputs, per-model entropy of ~40 bits on Mk3 and ~72 bits on Mk4/Q/Mk5, fixed versions Mk3 4.2.0+ / Mk4-Mk5 5.6.0+ / Q 1.5.0Q+, the 1,083 BTC / ~$70M / ~1,196-address wave with largest wallets first, and the protected groups: ≥50 dice rolls, BIP-39 passphrase, multisig): https://news.bitcoin.com/featured/the-coldcard-exploit-explained-who-lost-bitcoin-and-whos-at-risk/[cryptonewscoldcard2026]— crypto.news, "A build error in Coldcard's firmware drained $38 million in bitcoin in 25 minutes" (the opening sweep: 594 BTC / ~$38M from ~500 wallets in 25 minutes; the March 2021 firmware 4.0.0-line origin and the skipped hardware randomness generator): https://crypto.news/coldcard-firmware-bug-drains-38-million-bitcoin/[coindeskcoldcard2026]— CoinDesk, "Major bitcoin wallet flaw drains 594 BTC in 25-minute sweep" (independent confirmation of the opening wave and its timing): https://www.coindesk.com/tech/2026/07/31/major-bitcoin-wallet-flaw-drains-594-btc-in-25-minute-sweep[bitcoinmagcoldcard2026]— Bitcoin Magazine, "Coinkite Releases Fixed Firmware After Coldcard Bug; AI Likely Involved In The Breach" (Coinkite's 2026-07-31 09:33 EDT firmware release and per-model fixed versions, the Mk3 4.0.1–4.1.9 affected range, Coinkite attributing the fault to a specific line of firmware code, the statement that updating firmware does not change or repair an existing seed, and NVK's quoted remarks on AI-assisted code review): https://bitcoinmagazine.com/business/coinkite-releases-fixed-firmware-after-coldcard-bug-ai-likely-involved-in-the-hack[thehackernewscoldcard2026]— The Hacker News, "Coldcard Hardware Wallet Flaw Linked to $70 Million Bitcoin Theft in 41 Minutes" (the ~41-minute / ~$70M framing of the opening wave): https://thehackernews.com/2026/08/coldcard-hardware-wallet-flaw-linked-to.html[coindeskcoldcardselfcustody2026]— CoinDesk, "Coldcard exploit reignites Bitcoin self-custody debate after $38 million theft" (the second-order market and self-custody-confidence consequences): https://www.coindesk.com/business/2026/07/31/coldcard-s-usd38-million-so-far-exploit-shakes-faith-in-self-custody-may-push-investors-to-etfs[trmcoldcard2026]— TRM Labs, "The Largest Hardware Wallet Exploit of 2026: Inside the USD 116 Million Coldcard Hack" (independent 2026-08-05 figures: ~1,816 BTC / ~$116M across 5,200+ addresses over four waves with the fourth still in the mempool; the minimal laundering — a single 64.9 BTC Wasabi deposit and 200 ETH to Tornado Cash on 2026-08-04, otherwise one consolidation hop; the explicit refusal to attribute; the observation that transaction-construction differences across waves point to multiple attackers; and the ranking as the third-largest crypto theft of 2026 against $1.2B+ across 276 incidents year-to-date): https://www.trmlabs.com/resources/blog/the-largest-hardware-wallet-exploit-of-2026-inside-the-usd-116-million-coldcard-hack[techcrunchcoldcard2026]— TechCrunch, "Hackers steal over $130M by exploiting bug in offline hardware wallets" (the 2026-08-04 mainstream-press figure at the upper bound of the reported range): https://techcrunch.com/2026/08/04/hackers-steal-over-130-million-by-exploiting-bug-in-offline-hardware-wallets/[cybernewscoldcard2026]— Cybernews, "AI might have helped hackers steal $38M in bitcoin" (the AI-involvement claim, presented as suspicion rather than finding): https://cybernews.com/security/ai-suspected-coldcard-bitcoin-wallet-theft/
Discussion
Coldcard displaces Wintermute/Profanity as T11.004's most consequential anchor, and it does so by extending the class into territory the Technique's existing examples do not cover. Every prior anchor in OAK — Profanity, Ether.fi, SecondFi's Cardano web wallet — involved an off-chain software generator: a vanity-address tool, a web wallet, a library. Coldcard is a purpose-built hardware security device whose entire value proposition is that it generates keys better than software can, and it failed by silently becoming software. That is the sharpest available demonstration that T11.004 is not a property of amateur tooling but of any generation path where the entropy source can degrade without saying so.
The case also completes a three-case cohort of the same defect class in three years, which OAK now documents in full: Milk Sad (CVE-2023-39910, Libbitcoin Explorer's bx seed, Mersenne Twister seeded on 32 bits of clock time), Ill Bloom (2026, mobile software wallets with insecure PRNG-derived recovery phrases), and Coldcard. Read together at examples/2023-08-milk-sad-libbitcoin-bx-mersenne-twister-entropy-collapse.md and examples/2026-05-ill-bloom-mobile-wallet-weak-prng-recovery-phrase-sweep.md, the pattern is consistent and worth stating as a rule: the defect is always introduced quietly, always persists for years, and is always discovered by a third party rather than by the vendor. Milk Sad ran from 2017 to 2023, Coldcard from 2021 to 2026. Nobody's internal review found either one.
That last point is where the AI thread belongs, handled carefully. Two separate claims circulate and only one is established. What Coinkite itself put on the record is that its own AI-assisted code review did not catch the flaw — a vendor statement about its own process, and the more useful of the two. The other, that the attacker likely used a large language model to find or orchestrate the exploitation, is Galaxy's characterisation of an observed pattern, not a demonstrated finding, and OAK should not harden it into fact through repetition. What can be said without overreaching is narrower and still significant: this is the first major case in the corpus where the vendor's stated defensive tooling and the suspected offensive tooling are the same category of tool, and where the vendor's own framing is that such tooling now surfaces latent bugs faster than expert human review. If that framing is even partly right, the operative risk is not that AI finds bugs, but that latent defects sitting quietly in shipped code for years are now discoverable on a timescale far shorter than the years-long exposure windows this class creates — which shifts where the danger sits from generation-time to disclosure-time, and makes fail-closed entropy design and defence-in-depth measurably more valuable than they were.