<oembed><type>rich</type><version>1.0</version><author_name>semisol (npub122…cgrkj)</author_name><author_url>https://nostr.ae/npub12262qa4uhw7u8gdwlgmntqtv7aye8vdcmvszkqwgs0zchel6mz7s6cgrkj</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>It seems that the details were already posted all over the place over Twitter and Telegram, so here is an explanation of it:&#xA;&#xA;In Coldcard, there are two implementations of getting bytes from the HWRNG, in cckt and libngu.&#xA;&#xA;The path in libngu is used for generating seeds. This one calls the MicroPython API to get random values.&#xA;&#xA;The MicroPython API uses the HWRNG if enabled. The problem was that Coinkite disabled the HWRNG for MicroPython.&#xA;&#xA;This should not have been an issue, as libngu had a check to see if the HW RNG is enabled. However, this used ifndef, which explicitly checked *if the HW RNG enable was not configured*. It did not check if the HW RNG enable was turned off explicitly, which is what Coinkite did.&#xA;&#xA;This led to their code using the flawed software MicroPython RNG, which was solely based on the device boot time and a very weak manufacturing identifier.&#xA;&#xA;This means that there are not a lot of different seeds. In Mk4/Mk5, this issue still exists. The only difference is that 32 actually random bits (which is tiny) have been mixed into the RNG.&#xA;&#xA;By overly complicating their codebase, in what can only be described as “attempted security through complexity”, they have put all user funds at risk.&#xA;&#xA;Regarding the implications:&#xA;- If you generated using dice or wordlist or another method that included non-Coldcard entropy, you are fine.&#xA;- If you generated on a non-Coldcard device, you are fine.&#xA;- If not, your funds are at risk. A passphrase will help slow it down but the main seed is still compromised.&#xA;&#xA;Multisigs: You are affected *privacy wise* if one of your members is a Coldcard-generated seed. You are only at risk if the majority of your members are CC.&#xA;&#xA;Secure element RNGs: These are fine. You need a proper one though from Infineon/NXP/ST, and not the crappy IoT ones.&#xA;Also beware the HWW firmware can still butcher the resulting numbers.</html></oembed>