COLDCARD vulnerability what happened, and what to do
Informational only, and this site never asks for your recovery words. details

Informational only. This is independent analysis and an evidence-backed explainer, not financial, security or legal advice, and not a substitute for professional advice about your own situation. It is not affiliated with, endorsed by, or speaking for Coinkite, Block, or any other party named here. Published estimates are attributed, and differing scenarios are kept separate with their assumptions. Act on your own judgement. Editorial standards and corrections.

Do not disclose recovery material to a website, form, message or support account. This site never asks for it. Deliberate recovery on independently verified offline equipment is a separate operation. Seed-word safety.

Disclosure of vulnerable Bitcoin wallet library

unciphered-randstorm-disclosure

https://www.unciphered.com/disclosure-of-vulnerable-bitcoin-wallet-library-2/

Organisation
Unciphered
Evidence role
Primary technical research
Published
2023-11-14
Source changes
0
Detected differences
0
Unreviewed
0
Copies held
1

Primary Randstorm disclosure describing vulnerable BitcoinJS-derived browser wallets and the browser- and date-dependent attack surface.

Every check is recorded, including checks that found no text change. A detected edit is therefore bounded between two checks. The publisher's exact save time is not observable from this record. Last checked 2 Aug 2026, 00:59 UTC.

  1. Earliest copy held Current
    seen 1 Aug 2026, 09:15 UTC · Captured here text sha256 3c2a507b7ae1fe909328b523 5,422 chars
    Extracted text as captured
    Skip to content
    Home
    About
    FAQs
    Media
    Blog
    Referral Program
    Home
    About
    FAQs
    Media
    Blog
    Referral Program
    Start Recovery Process
    Randstorm: You Can’t Patch a House of Cards
    Randstorm: You Can’t Patch a House of Cards
    Randstorm: You Can’t Patch a House of Cards
    Jason john
    November 14, 2023
    Over the last 22 months, /wp-content/uploads/2025/03/blog-10.png has been working on a vulnerability which affected BitcoinJS, a popular package for the browser based generation of cryptocurrency wallets, as well as products and projects built from this software. Over a period of years, this vulnerability caused the generation of a significant number of vulnerable cryptocurrency wallets.
    The source of the vulnerability is the SecureRandom() function found in the JSBN javascript library, combined with weaknesses that existed in major browser implementations of Math.random(). The JSBN library was utilized by BitcoinJS until March of 2014. Other projects incorporated early versions of BitcoinJS for the generation of Bitcoin and other cryptocurrency wallets. As such, it is difficult to calculate the exact time frame for the vulnerability, but we have observed vulnerable wallets being generated from 2011-2015. We can confirm that this vulnerability is exploitable, however, the amount of work necessary to exploit wallets varies significantly and, in general, considerably increases over time. That is to say, as a rule, impacted wallets generated in 2014 are substantially more difficult to attack than impacted wallets generated in 2012.
    We have been coordinating disclosure with multiple entities and, as a result, millions of users have been alerted. In the event that it is possible an individual has assets held in an affected wallet, they should be moved to a newly generated wallet created with trusted software.
    Vulnerability
    In January of 2022, /wp-content/uploads/2025/03/blog-10.png was performing work for a customer that was locked out of a Blockchain.com (previously Blockchain.info) Bitcoin wallet. While examining this wallet, and avenues for recovery, it led us to (re)discover a potential issue in wallets generated by BitcoinJS (and derivative projects) between 2011 – 2015. This potentially affects millions of cryptocurrency wallets that were generated in the 2011-2015 timeframe. The value of assets still in those wallets is sizable. /wp-content/uploads/2025/03/blog-10.png engaged affected parties and has been working for over a year on remediating the issue. We weren’t, however, the first ones to notice this.
    BitcoinJS (or bitcoinjs-lib) is a JavaScript implementation of Bitcoin. The first block of the Bitcoin blockchain was minted in January of 2009. The first BitcoinJS commit was a little over two years later in May of 2011.
    You can view the 0.1.3 version here – https://cdnjs.cloudflare.com/ajax/libs/bitcoinjs-lib/0.1.3/bitcoinjs-min.js
    Unfortunately, for an incredibly popular library, there was an issue in BitcoinJS.
    On the 6th of April, 2018, an individual calling themselves “Ketamine” sent an email from <[email protected]> to the bitcoin-dev mailing list titled, “Multiple vulnerabilities in SecureRandom(), numerous cryptocurrency products affected.” In this post, the user states:
    “A significant number of past and current cryptocurrency products
    contain a JavaScript class named SecureRandom(), containing both
    entropy collection and a PRNG. The entropy collection and the RNG
    itself are both deficient to the degree that key material can be
    recovered by a third party with medium complexity.”
    And goes on to say:
    “The most common variations of the library attempts to collect entropy
    from the window. crypto’s CSPRNG, but due to a type error in a comparison,
    this function is silently stepped over without failing. Entropy is
    subsequently gathered from math. Random (a 48-bit linear congruential
    generator, seeded by the time in some browsers), and a single
    execution of a medium resolution timer. In some known configurations

    Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.

How to check this yourself

Each copy above is identified by the SHA-256 of its extracted text, shown beside it, and the diffs are plain unified diffs. To verify a quotation, compare it against the page itself or against the Internet Archive's copies, which are independent of this project.

Complete captures are held offline rather than mirrored here, so this page shows diffs and excerpts. If a quotation is ever disputed, the full copy can be produced. Ask.