Gelombang awal berasingan dari eksploitasi yang sama menyapu 594 BTC (~RM171 juta) dari kira-kira 500 dompet tandatangan tunggal dalam letusan 25 minit sekitar 01:31 UTC . Galaxy Research, Chainalysis, dan pasukan kejuruteraan Block semuanya secara bebas mengaitkan kecurian ini dengan kelemahan Coldcard yang sama .
Pasukan Kejuruteraan dan Keselamatan Bitcoin Block, diketuai oleh jurutera Clay Garrett, mengenal pasti bahawa penyerang menggunakan akaun berbayar di pembekal perkhidmatan blockchain yang terkenal untuk mengenal pasti dan menanyakan alamat yang terdedah dengan cekap . Corak on-chain penyerang — sapuan berurutan yang pantas dan luar biasa pada alamat yang berkongsi kelemahan yang sama — memberi petunjuk kepada penyiasat. Block mengesahkan bukti kesan yang menghubungkan aktiviti pengendali terus kepada infrastruktur pembekal tersebut .
Penyiasatan Block mendapati apa yang digambarkan oleh Garrett sebagai "kekhususan luar biasa, hingga ke tahap akaun" . Perkhidmatan analisis itu bertindak sebagai alat peninjauan yang berkesan, membolehkan penyerang memetakan dengan pantas alamat mana yang dijana pada firmware terdedah dan mengutamakan sasaran paling kaya .
Bug ini diperkenalkan dalam komitmen firmware Mac 2021 (bermula dengan firmware Mk3 versi 4.0.1) semasa migrasi ke perpustakaan libsecp256k1 Bitcoin Core . Ralat makro konfigurasi binaan menyebabkan firmware memintas penjana nombor rawak perkakasan (TRNG) STM32 khusus peranti dan sebaliknya bergantung pada RNG perisian Yasmarang deterministik MicroPython .
Konfigurasi papan pengeluaran menetapkan MICROPY_HW_ENABLE_RNG kepada sifar kerana Coldcard mempunyai pembalut RNG perkakasan yang berasingan. Tetapi perpustakaan libngu gagal memanggil pembalut itu dengan betul: keadaan pengawalnya (#ifndef MICROPY_HW_ENABLE_RNG) hanya menguji sama ada makro itu ditakrifkan, bukan sama ada nilainya bukan sifar . Oleh kerana makro itu ditakrifkan (ditetapkan kepada sifar), libngu secara senyap menyimpulkan laluan perkakasan tersedia dan mengikat kepada fungsi rng_get() berasaskan perisian MicroPython .
Ini mengurangkan entropi berkesan kepada kira-kira 32–40 bit (turun daripada 128+ bit yang dimaksudkan), bermakna hanya kira-kira 4 bilion kemungkinan nilai seed — boleh diteka secara paksa dengan perkakasan moden . Seed yang dijana tanpa tambahan lilitan dadu pengguna atau frasa laluan BIP 39 terdedah sepenuhnya .
Ketua Pegawai Eksekutif Coinkite, Rodolfo Novak (NVK), kemudian mengakui kesilapan itu: "Saya secara jelas menetapkan MICROPY_HW_ENABLE_RNG kepada sifar, menyangka kami tidak memerlukan mana-mana versi, tetapi itu bukan fungsinya" .
| Terjejas | Tidak Terjejas |
|---|---|
| Coldcard Mk3, firmware 4.0.1 hingga 5.0.3 | Mk4, Q, Mk5 (berdasarkan analisis awal Coinkite) |
| Seed dijana tanpa lilitan dadu pengguna atau frasa laluan BIP 39 | Seed dijana dengan lilitan dadu pengguna atau frasa laluan |
Coinkite kemudian memperluas nasihatnya untuk merangkumi versi firmware Mk4, Mk5, dan Q tertentu selepas analisis lanjut, dan mengeluarkan kemas kini firmware kecemasan untuk semua model terjejas .
Eksploitasi ini telah menggugat salah satu janji teras penyimpanan sendiri — bahawa elemen selamat dompet perkakasan menjamin keselamatan kriptografi tanpa mengira bug perisian .
Untuk pecahan teknikal terperinci, lihat laporan kejuruteraan Block dan latar belakang teknikal Coinkite .