Gelombang terpisah dari eksploitasi yang sama menyapu 594 BTC (~$38 juta) dari sekitar 500 dompet single-signature dalam waktu 25 menit sekitar pukul 01:31 UTC . Galaxy Research, Chainalysis, dan tim engineering Block secara independen mengaitkan pencurian ini dengan kerentanan Coldcard yang sama .
Tim Bitcoin Engineering dan Keamanan Block, yang dipimpin oleh engineer Clay Garrett, mengidentifikasi bahwa peretas menggunakan akun berbayar di penyedia layanan blockchain ternama untuk secara efisien mengidentifikasi dan menanyai alamat yang rentan . Pola on-chain peretas — sapuan berurutan yang sangat cepat terhadap alamat-alamat dengan kelemahan yang sama — membuat penyelidik curiga. Block mengonfirmasi bukti jejak yang menghubungkan aktivitas operator langsung ke infrastruktur penyedia layanan tersebut .
Investigasi Block menemukan apa yang digambarkan Garrett sebagai "spesifisitas yang luar biasa, hingga ke tingkat akun" . Layanan analitik tersebut secara efektif berfungsi sebagai alat pengintaian, memungkinkan peretas dengan cepat memetakan alamat mana yang dihasilkan pada firmware yang rentan dan memprioritaskan target terkaya .
Bug ini diperkenalkan dalam commit firmware Maret 2021 (dimulai dengan firmware Mk3 versi 4.0.1) selama migrasi ke pustaka libsecp256k1 milik Bitcoin Core . Kesalahan makro konfigurasi build menyebabkan firmware melewati pembangkit bilangan acak perangkat keras (TRNG) STM32 khusus perangkat dan sebagai gantinya menggunakan pembangkit RNG perangkat lunak Yasmarang deterministik milik MicroPython .
Konfigurasi board produksi menetapkan MICROPY_HW_ENABLE_RNG ke nol karena Coldcard memiliki wrapper RNG perangkat keras terpisah. Namun, pustaka libngu gagal memanggil wrapper tersebut dengan benar: kondisi penjaganya (#ifndef MICROPY_HW_ENABLE_RNG) hanya menguji apakah makro tersebut didefinisikan, bukan apakah nilainya bukan nol . Karena makro tersebut didefinisikan (disetel ke nol), libngu secara diam-diam menyimpulkan bahwa jalur perangkat keras tersedia dan terikat pada fungsi rng_get() berbasis perangkat lunak milik MicroPython .
Hal ini mereduksi entropi efektif menjadi kira-kira 32–40 bit (turun dari 128+ bit yang dimaksudkan), yang berarti hanya ada sekitar 4 miliar kemungkinan nilai seed — sangat mudah dipecahkan dengan paksa menggunakan perangkat keras modern . Seed yang dihasilkan tanpa tambahan lemparan dadu dari pengguna atau frasa sandi BIP 39 sepenuhnya terekspos .
CEO Coinkite, Rodolfo Novak (NVK), kemudian mengakui kesalahan tersebut: "Saya secara eksplisit menyetel MICROPY_HW_ENABLE_RNG ke nol, berpikir kami tidak memerlukan versi mana pun, tapi bukan itu fungsinya" .
| Terkena Dampak | Tidak Terkena Dampak |
|---|---|
| Coldcard Mk3, firmware 4.0.1 hingga 5.0.3 | Mk4, Q, Mk5 (berdasarkan analisis awal Coinkite) |
| Seed dihasilkan tanpa lemparan dadu pengguna atau frasa sandi BIP 39 | Seed dihasilkan dengan lemparan dadu dari pengguna atau frasa sandi |
Coinkite kemudian memperluas imbauannya untuk mencakup versi firmware Mk4, Mk5, dan Q tertentu setelah analisis lebih lanjut, dan merilis pembaruan firmware darurat untuk semua model yang terkena dampak .
Eksploitasi ini telah mengguncang salah satu janji inti kustodi mandiri — bahwa elemen aman dompet perangkat keras menjamin keamanan kriptografis terlepas dari bug perangkat lunak .
Untuk rincian teknis yang mendalam, lihat laporan engineering Block dan latar belakang teknis Coinkite .