Damus
FLASH profile picture
FLASH
@flash
⚡️‼️ NEW - Coldcard bug may have been caused by a compiler workaround.

A new technical analysis by Core-Lightning dev ddustin suggests the 2021 COLDCARD vulnerability may have started while a developer was trying to connect three layers of the firmware: the wallet’s Python code, MicroPython’s C code, and the STM32 hardware random number generator.

The custom code appears to have conflicted with MicroPython’s existing implementation, likely triggering a compiler error.

The evidence suggests the developer then disabled the hardware RNG by setting MICROPY_HW_ENABLE_RNG to 0, allowing the firmware to compile.

That change had an unintended consequence. When users created new wallets, the firmware no longer used the hardware random number generator. Instead, it fell back to MicroPython’s much weaker Yasmarang software random number generator.

The commit message left by the dev was just the word “runs.”

The analysis argues this is a reminder that developers should never ship security-critical code they don’t fully understand, especially when it protects billions of dollars in Bitcoin.

That speaks volumes about the professionalism and reliability of the company behind it.
1410❤️17❤️2👀2🤔21👍1
FLASH · 2d
🗞️ https://insider.btcpp.dev/p/when-randombytes-runs-but-doesnt
G Force G · 2d
This would also be a good way to make auditable software pass static code analysis with a backdoor for the elect.
9x9 Bertha Returns · 2d
Every developer knows that if you have to brute force the compiler to compile you did bad. Not a witch hunt just appreciate the implication
P13b 'N F10w · 2d
runs
unit · 2d
Yikes
bootlace · 2d
I know nothing but my gut says the root cause was the relatively urgent "need" to rewrite a massive amount of code to resolve the corporate software license dispute. For want of an "ifdef" or something.
GermanHodl · 2d
If true this is an unbelievable amount of neglect.
tuma · 2d
nostr:npub1z6dx97fxn94j3z9c3pvgsellnywqgakmj82d7rrr3jdlgy2nqgnq5uf7n9
db · 2d
unintended? it litteraly says "HW_ENABLE_RNG = 0" i.e false.
Jack Jack · 2d
Such changes are never unintended. Intention was to disable the setting. Don’t let anyone think otherwise
OgFOMK ArTS · 2d
In the military I disabled the very fast baud rate for double encrypted, frequency hopped fire missions. I told my command that the pops and cracks in our phone lines were making the non-acknowlege transmissions. I suggested we fire using a slow baud because we had many assets doing nothing. Million...
brito · 1d
Who even thinks about writing a cybersec software in Python