摘要
- Coinkite 表示,由於構建錯誤,Coldcard 硬體錢包上的 seed 是從軟體備援生成,而非來自硬體隨機產生器。
- 公司認為攻擊者利用 AI 來審查其開源代碼,而且自身幾週前用 AI 審查時並未發現問題。
- 每款現行型號都受到不同程度影響,並且更新韌體無法修復已建立的 seed。
Coinkite 認為攻擊者使用 AI 發現漏洞,導致 Coldcard 硬體錢包持有者損失數千萬美元的Bitcoin,同時指出自家 AI 審查幾週前並未發現任何問題。
這家硬體錢包製造商於週四發布了 Mk3 型號的 警示以及 技術分析,原因是發現其設備生成的 seed 比預期更容易被猜測。
這個在週五早上遭利用的漏洞造成的損失,目前估計有 594 BTC,約為 3,800 萬美元。資金在約 25 分鐘內從約 500 個錢包被轉移,562 BTC 已整合到單一地址。
Coinkite 表示,必須假設「有人使用 AI 審查我們之前版本的韌體」來發現漏洞。公司表示幾週前曾用市面上最佳模型檢查過自身代碼,但模型「沒有發現這個漏洞,也沒有發現任何嚴重問題」。攻擊者和防守方都使用同樣的工具,但這次「對我們沒幫助,只幫了壞人」。
發生了什麼錯誤
Coldcard 的韌體會呼叫一個函式用來取得隨機值,而在程式碼庫內有兩個實現方式且簽名相同:Coinkite 編寫的硬體生成器,以及從 MicroPython 繼承的軟體備援。預處理器只檢查設定是否定義,沒檢查其值,因此構建過程使用了備援方式,沒有產生錯誤。自 2021 年 3 月遷移起,seed 就一直採用這個做法。
所有現行型號皆有不同程度的影響。Coinkite 估計 Mk3 的 seed 有效搜尋空間約 40 位元,預期應為 128 位元。Mk4、Q 和 Mk5 的安全元件額外提供熵,使 seed 強度提升至約 72 位元,雖然還未達標,但明顯改善。Tapsigner、Opendime 和 Satscard 採用不同代碼,並未受到此漏洞影響。
持有人必須採取的措施
Coinkite 已釋出緊急修補,Mk4 和 Mk5 的最新版本為 5.6.0,Q 則為 1.5.0Q。更新韌體無法修復已在受影響韌體上建立的 seed。持有人需用修補後的硬體重新生成 seed,並建議使用強 BIP-39 密語、至少擲骰 99 次或兩者並用。Mk3 持有人因已停止支援,被指示採用另外的遷移方案。


