2021年3月のファームウェア統合エラーにより、Coldcardデバイスはシードフレーズ生成時に専用のハードウェアエントロピーチップをバイパスし、代わりにソフトウェアベースの擬似乱数生成器(PRNG)にフォールバックするようになった。このバグはファームウェアバージョン4.0.1から4.1.9に影響を与え、その後の分析ではMk3ユニットのバージョン5.0.3まで対象範囲が拡大された。
影響を受けたMk3デバイスでは、有効エントロピーが期待される128ビットからわずか約40ビットにまで低下し、物理的なアクセス、フィッシング、マルウェアなどを必要とせずに、シードフレーズをオフラインで総当たり攻撃できる状態になった。Coinkite自身の分析でも、一部のMk3シードは約40ビットのエントロピーしかないことが後に確認された。ハードウェアRNGがアクティブであることを確認するためのファームウェアチェック自体も、同じアップデートによって壊れていたため、このバグは5年以上もの間、検出されないままだった。
Block(Square)の研究者は7月31日に詳細な技術分析を公開し、根本原因はColdcardの乱数生成コードにおける統合エラーにあると特定した。Blockの報告書は、「COLDCARDファームウェアにはRNG統合エラーが含まれており、これによりngu.randomがSTM32ハードウェアRNGの代わりにMicroPythonの決定論的Yasmarangフォールバックを使用するようになる」と説明している。つまり、シードフレーズは真のハードウェア乱数ではなく、マイクロコントローラーのシリアル番号やシステムカウンターなどの予測可能な値を使用して生成されていたのである。
被害額の推定値は3800万ドルから1億3000万ドルまで幅があり、この大きな開きは矛盾しているわけではない。攻撃が展開されるにつれて、また研究者がオンチーン分析を拡大するにつれて、異なる時点でのスナップショットを反映しているに過ぎない。
| 推定額 (BTC) | 概算USD | 出典 / タイミング |
|---|---|---|
| 594 BTC | ~$38M | Coinkiteの最初の勧告、500以上の休眠ウォレット |
| 1,082.65 BTC | ~$70.2M | Galaxy Research、最初の41分間の大規模流出 |
| 1,367 BTC | ~$88–89M | Galaxy Research、8月初旬の追跡 |
| 1,816 BTC | ~$116M | Forbes / TRM Labs、5,200以上のアドレス |
| 2,055 BTC | ~$130M | Galaxy Research、4波、7,300以上のアドレス |
Coinkiteの対応は迅速だったが、同社は根本的な限界に直面していた。脆弱性がシード生成そのものにあったため、ファームウェアパッチでは既に作成されたシードを修正できなかったのである。
より広範なセキュリティ研究コミュニティは迅速に動き、 exploitの規模を解明し、その根本原因を追跡した。
2021年3月のファームウェア統合エラーにより、Coldcardデバイスはシードフレーズ生成時に専用のハードウェアエントロピーチップをバイパスし、代わりにソフトウェアベースの擬似乱数生成器(PRNG)にフォールバックするようになった。このバグはファームウェアバージョン4.0.1から4.1.9に影響を与え、その後の分析ではMk3ユニットのバージョン5.0.3まで対象範囲が拡大された。
影響を受けたMk3デバイスでは、有効エントロピーが期待される128ビットからわずか約40ビットにまで低下し、物理的なアクセス、フィッシング、マルウェアなどを必要とせずに、シードフレーズをオフラインで総当たり攻撃できる状態になった。Coinkite自身の分析でも、一部のMk3シードは約40ビットのエントロピーしかないことが後に確認された。ハードウェアRNGがアクティブであることを確認するためのファームウェアチェック自体も、同じアップデートによって壊れていたため、このバグは5年以上もの間、検出されないままだった。
Block(Square)の研究者は7月31日に詳細な技術分析を公開し、根本原因はColdcardの乱数生成コードにおける統合エラーにあると特定した。Blockの報告書は、「COLDCARDファームウェアにはRNG統合エラーが含まれており、これによりngu.randomがSTM32ハードウェアRNGの代わりにMicroPythonの決定論的Yasmarangフォールバックを使用するようになる」と説明している。つまり、シードフレーズは真のハードウェア乱数ではなく、マイクロコントローラーのシリアル番号やシステムカウンターなどの予測可能な値を使用して生成されていたのである。
被害額の推定値は3800万ドルから1億3000万ドルまで幅があり、この大きな開きは矛盾しているわけではない。攻撃が展開されるにつれて、また研究者がオンチーン分析を拡大するにつれて、異なる時点でのスナップショットを反映しているに過ぎない。
| 推定額 (BTC) | 概算USD | 出典 / タイミング |
|---|---|---|
| 594 BTC | ~$38M | Coinkiteの最初の勧告、500以上の休眠ウォレット |
| 1,082.65 BTC | ~$70.2M | Galaxy Research、最初の41分間の大規模流出 |
| 1,367 BTC | ~$88–89M | Galaxy Research、8月初旬の追跡 |
| 1,816 BTC | ~$116M | Forbes / TRM Labs、5,200以上のアドレス |
| 2,055 BTC | ~$130M | Galaxy Research、4波、7,300以上のアドレス |
Coinkiteの対応は迅速だったが、同社は根本的な限界に直面していた。脆弱性がシード生成そのものにあったため、ファームウェアパッチでは既に作成されたシードを修正できなかったのである。
より広範なセキュリティ研究コミュニティは迅速に動き、 exploitの規模を解明し、その根本原因を追跡した。