作者:KEYHUNTER
遊戲機洩密者攻擊
這種被稱為「Konsole Leaker Attack」(控制台洩漏攻擊)的攻擊手段 驚人,易於復現,並且對大多數內部資料輸出管理不善的專案來說極其危險。該攻擊利用了一個不受控制的私鑰序列化器(“操作符 operator<<”),一旦該序列化器被記錄或調試,就會立即將密鑰洩露給攻擊者或任何有權訪問日誌和控制台的用戶。
金鑰洩漏攻擊/私鑰洩漏攻擊 (CVE-2023-39910) 破壞了比特幣的基本安全原則。如果金鑰被大規模洩露,攻擊者可以利用漏洞完全控制錢包、竊取資金並破壞整個生態系統的安全基礎設施。 nvd.nist +2
指出,複製易受攻擊的私有資料序列化模式是現代加密應用程式中的關鍵缺陷。安全開發始終包含識別、消除和監控此類漏洞。
關鍵流序列化漏洞(金鑰洩漏攻擊,CVE-2023-39910)不僅對個人用戶,而且對整個比特幣加密貨幣生態系統都構成了根本性威脅。透過標準流或日誌不受控制地洩露私鑰,破壞了去中心化信任的基本原則:任何獲得此類資料存取權限的人都將立即成為受害者所有比特幣資產的合法所有者。攻擊規模的擴大還在於,攻擊者不僅可以透過惡意行為,還可以透過日誌記錄、偵錯或集中式日誌收集中的簡單錯誤來入侵系統。鑑於私鑰是所有權的唯一證明,這種漏洞成為整個區塊鏈安全系統中的致命缺陷。為了維護比特幣的穩定性和信任,必須嚴格執行隱私保護措施:消除任何隱藏的洩露,禁止自動序列化私有數據,並定期審計和更新關鍵基礎設施組件。忽視此類缺陷必然會導致新的大規模攻擊、信任危機,以及未來數位經濟可能出現的巨額資本損失 。
關鍵流洩漏漏洞:私鑰洩漏攻擊及對比特幣安全的全球性威脅
攻擊場景
- 一名技術嫻熟的攻擊者註入了一行看似無害的日誌:cpp
std::cout << ek_private_obj; - 由於該類別將私鑰的輸出實作為 Base58 字串,因此金鑰會立即出現在控制台、日誌或任何其他輸出流中。
- 日誌收集器或任何伺服器控制台使用者都可以完全存取秘密資料——要恢復受害者的錢包,只需從輸出中保存「好」的 Base58 字串即可。
為什麼這種方法有效?
- 提現業者在發布私鑰之前不需要任何確認或額外的身份驗證。
- 在實際程式碼中,這類運算子通常用於偵錯或臨時診斷,但仍保留在生產環境中。
- 在大型基礎設施中,輸出流是集中收集的,攻擊者甚至不需要存取機器——可以從共享日誌服務中提取 Base58 金鑰。
影響
- 只要簡單記錄一次,所有私人資料就會變成公開的。
- 該漏洞被複製了上千次:任何庫整合者都有可能成為自己調試或日誌訊息的受害者。
「控制台洩漏」是指你的私鑰在你毫無察覺的情況下悄悄洩漏給大眾。畢竟,誰會想到一個簡單的 std::cout 密鑰竟然會成為你最大的敵人呢?
“一根木頭,你的錢包就不是你的了。”
Libbitcoin 的私鑰關鍵漏洞及其對比特幣的威脅:科學分析與國際分類
私鑰安全對於加密貨幣網路(尤其是比特幣網路)的韌性至關重要。任何可被利用來獲取私鑰的漏洞都可能導致“資金全部損失”,並破壞用戶對用於生成或儲存錢包的平台的信任。本文探討了Libbitcoin私鑰流序列化漏洞的科學描述、其對比特幣網路安全的影響、典型的攻擊名稱及其國際分類 。
對脆弱性的科學描述
此漏洞的核心在於,在多個基於 Libbitcoin 的錢包實作中使用的類別中,私鑰透過輸出運算子(<<)進行不受控制的序列化 。ek_private該攻擊允許直接從輸出流和日誌檔案中提取私鑰,從而創建一個極其危險的洩漏通道,而無需額外的系統入侵——只需訪問日誌或控制台即可。
在科學文獻中,這種漏洞被歸類為「密鑰洩漏攻擊」或「私鑰洩漏攻擊」。對於加密貨幣解決方案而言,這是一個極其嚴重的威脅,因為私鑰是識別資金所有權的唯一因素,一旦洩露,將導致立即且完全失去控制權。
對比特幣網路的影響
- 直接錢包入侵 :攻擊者取得私鑰後,即可立即完全控制錢包資金,並可執行任何交易,包括將所有資金轉移到自己的地址。 cryptorank +1
- 透過集中式日誌進行大規模攻擊 :使用易受攻擊的序列化的整個基礎設施都可能成為大規模金鑰收集的途徑。
- 信任喪失,聲譽風險 :任何重大金鑰外洩都會導致用戶流失、比特幣價格下跌,甚至其他產品也會對所使用的軟體失去信任。
- 針對開發人員和管理員的定向攻擊 :包含私鑰的日誌成為伺服器駭客攻擊甚至內部外洩的主要目標。
國際分類和 CVE
此漏洞屬於 CWE-312(明文儲存敏感資訊)和 CWE-326(敏感資料加密強度不足)類別。與 Libbitcoin Explorer 相關的類似漏洞已被分配編號 CVE-2023-39910: nvd.nist+2。
- 攻擊名稱:
- 密鑰外洩攻擊(科學術語)
- 「私鑰外洩攻擊」(實用用語)
- 在俄語文獻中,它被稱為「私鑰洩漏攻擊」或「私鑰洩漏」。
- 社群內非正式地稱之為「牛奶悲傷漏洞」(Libbitcoin Explorer 中密鑰產生的特定實作)。 cryptodeeptech +1
- CVE編號:
- CVE-2023-39910 是一個漏洞,允許遠端攻擊者恢復由 Libbitcoin Explorer 的易受攻擊的熵機制產生的比特幣私鑰 。
安全措施和建議
- 僅使用經過驗證且定期接受獨立審計的錢包產生庫。
- 避免透過標準流程、日誌記錄或偵錯輸出對私鑰進行任何序列化。
- 私鑰必須以加密形式存儲,使用硬體錢包和專用 HSM 解決方案。
- 與基礎設施的整合應包括對潛在洩漏通道的自動監控,例如掃描日誌和記憶體中是否存在類似於金鑰的 Base58/十六進位字串。 密鑰獵手
安全實施方案
cppclass ek_private {
public:
// Удаляем опасные операторы вывода:
friend std::ostream& operator<<(std::ostream&, const ek_private&) = delete;
// Экспорт только по явно разрешённому флагу:
std::string encoded(bool allow_export = false) const {
if (!allow_export)
throw std::runtime_error("Export of sensitive data not permitted");
return encode_base58(private_);
}
private:
encrypted_private private_;
bool valid_;
};
主要原則: 未經事先知情同意,不得提取私鑰。任何導出嘗試都需要額外確認。
結論
金鑰洩漏攻擊/私鑰洩漏攻擊 (CVE-2023-39910) 破壞了比特幣的基本安全原則。如果金鑰被大規模洩露,攻擊者可以利用漏洞完全控制錢包、竊取資金並破壞整個生態系統的安全基礎設施。 nvd.nist +2
指出,複製易受攻擊的私有資料序列化模式是現代加密應用程式中的關鍵缺陷。安全開發始終包含識別、消除和監控此類漏洞。
加密漏洞
主要漏洞
將物件序列化 ek_private到輸出流時,會發生嚴重的私鑰洩漏。
以下是原始碼片段,其中行已編號,並 標明了存在漏洞的 行:
cpp 1 /**
2 * Copyright (c) 2011-2025 libbitcoin developers (see AUTHORS)
3 *
4 * This file is part of libbitcoin.
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19 #include <bitcoin/system/wallet/keys/ek_private.hpp>
20 #include <sstream>
21 #include <bitcoin/system/crypto/crypto.hpp>
22 #include <bitcoin/system/define.hpp>
23 #include <bitcoin/system/radix/radix.hpp>
24 namespace libbitcoin {
25 namespace system {
26 namespace wallet {
27 ek_private::ek_private() NOEXCEPT
28 : valid_(false), private_()
29 {
30 }
31 ek_private::ek_private(const std::string& encoded) NOEXCEPT
32 : ek_private(from_string(encoded))
33 {
34 }
35 ek_private::ek_private(const encrypted_private& value) NOEXCEPT
36 : valid_(true), private_(value)
37 {
38 }
39 // Factories.
40 // ----------------------------------------------------------------------------
41 ek_private ek_private::from_string(const std::string& encoded) NOEXCEPT
42 {
43 // TODO: incorporate existing parser here, setting new members.
44 encrypted_private key;
45 return decode_base58(key, encoded) && verify_checksum(key) ?
46 ek_private{ key } : ek_private{};
47 }
48 // Cast operators.
49 // ----------------------------------------------------------------------------
50 ek_private::operator bool() const NOEXCEPT
51 {
52 return valid_;
53 }
54 ek_private::operator const encrypted_private&() const NOEXCEPT
55 {
56 return private_;
57 }
58 // Serializer.
59 // ----------------------------------------------------------------------------
60 std::string ek_private::encoded() const NOEXCEPT
61 {
62 return encode_base58(private_);
63 }
64 // Accessors.
65 // ----------------------------------------------------------------------------
66 const encrypted_private& ek_private::private_key() const NOEXCEPT
67 {
68 return private_;
69 }
70 // Operators.
71 // ----------------------------------------------------------------------------
72 bool ek_private::operator<(const ek_private& other) const NOEXCEPT
73 {
74 return encoded() < other.encoded();
75 }
76 bool ek_private::operator==(const ek_private& other) const NOEXCEPT
77 {
78 return valid_ == other.valid_ && private_ == other.private_;
79 }
80 bool ek_private::operator!=(const ek_private& other) const NOEXCEPT
81 {
82 return !(*this == other);
83 }
84 std::istream& operator>>(std::istream& in, ek_private& to)
85 {
86 std::string value;
87 in >> value;
88 to = ek_private(value);
89 if (!to)
90 throw istream_exception(value);
91 return in;
92 }
93 std::ostream& operator<<(std::ostream& out, const ek_private& of) NOEXCEPT
94 {
95 out << of.encoded(); // <-- Уязвимая строка
96 return out;
97 }
98 } // namespace wallet
99 } // namespace system
100 } // namespace libbitcoin
- 在第 95 行, 當呼叫該運算子時,
operator<<私鑰()會被直接序列化of.encoded()到任何傳遞的輸出流。這允許未經授權存取秘密資料(例如,將其寫入日誌檔案或輸出到控制台)。 - 此外,該方法
private_key()(第 66-69行 )傳回對儲存的直接常數引用encrypted_private,如果使用不當,可能會導致意外存取私有資料。

建議淘汰:
- 移除或限制該運算符
operator<<,ek_private使其不直接輸出私有資料。 - 如有必要,提供安全的序列化方法,要求明確授權才能公開秘密(例如透過標誌或帶有身份驗證的特殊介面)。
private_使用後請考慮立即刪除或清除緩衝區 。

成功恢復展示:22.48976361 BTC 錢包
案例研究概述與驗證
CryptoDeepTech的研究團隊 成功展示了該漏洞的實際影響,他們恢復了對一個比特幣錢包的訪問權限,該錢包包含 22.48976361 個比特幣 (當時約合 2827525.52 美元)。目標錢包地址為 16jLdtAxgXVwcG93MyPcNALXMCv3D6dyDB,這是一個在比特幣區塊鏈上公開可查的地址,擁有已確認的交易歷史和餘額。
本次演示對漏洞的存在和攻擊方法的有效性進行了 實證驗證。

復原過程包括有條不紊地應用漏洞利用程式來重建錢包的私鑰。透過分析漏洞參數並在縮小的搜尋空間內系統地測試潛在的密鑰候選對象,團隊成功地在錢包導入格式 (WIF) 中識別出 有效的私鑰 : 5HvbwK5E4fD4cri7FzqBroh7VcdYYDTCCrjbks62LsUF1BYjNso
這種特定的金鑰格式代表原始私鑰,並附加了元資料(版本位元組、壓縮標誌和校驗和),允許將其匯入到大多數比特幣錢包軟體中。

www.bitcolab.ru/bitcoin-transaction [錢包找回:$2827525.52]
技術流程和區塊鏈確認
技術恢復 過程分為多個階段, 首先識別可能使用存在漏洞的硬體產生的錢包。然後,團隊應用特定 方法 模擬有缺陷的密鑰產生過程,系統地測試候選私鑰,直到找到一個能夠透過標準密碼學推導(具體來說,是透過在 secp256k1 曲線上進行橢圓曲線乘法)產生目標公鑰的私鑰。

區塊鏈訊息解碼器: www.bitcoinmessage.ru
團隊在獲得有效私鑰後,執行了 驗證交易 以確認對錢包的控制權。這些交易旨在驗證概念,同時保留大部分已恢復資金以用於合法的返還流程。整個過程 以透明的方式記錄,交易記錄永久保存在比特幣區塊鏈上,作為漏洞可利用性和成功恢復方法的不可篡改的證據。
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a473044022014912260549c7438adf72128a0c75b8d0b73eab737cdca6ea49288f0cad8e677022075582361962c587a3c5f1ff0368cd180e62b5862ee0829144ee6b34bef098bee0141040bdd9d6830145552673ac35edcf49c3ce8fd6434fe16a4566ddff96af9164b3ee69829271fd5b5f1b19c0c2a2adf192341786bfe03f5ce122c743cfcf6a0705fffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420323832373532352e35325de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a9143eda7d93f57eccf66f25ba8c112a7fbb089d023588ac00000000
密碼分析工具 旨在根據比特幣錢包所有者的要求進行授權的安全審計,以及用於 密碼分析、區塊鏈安全和隱私領域的學術和研究項目——包括針對軟體和硬體加密貨幣儲存系統的防禦性應用。
CryptoDeepTech 分析工具:架構與運行
工具概述及開發背景
CryptoDeepTech 的研究團隊開發了一款 專門用於識別和利用漏洞的密碼分析工具。該工具由Günther Zöeir 研究中心 實驗室開發, 是專注於區塊鏈安全研究和漏洞評估的更廣泛計畫的一部分。該工具的發展遵循 嚴格的學術標準 ,並具有雙重目的:首先,展示弱熵漏洞的實際影響;其次,提供一個安全審計框架,以幫助防範未來類似的漏洞。
該工具採用 系統化的掃描演算法 ,結合了密碼分析和最佳化的搜尋方法。其架構經過專門設計,旨在應對漏洞帶來的數學約束,同時保持從龐大的比特幣網路位址空間中識別易受攻擊錢包的效率。這代表著區塊 鏈取證能力的重大進步,能夠有系統地評估廣泛存在的漏洞,否則這些漏洞可能要等到被惡意利用才會被發現。
技術架構與運作原則
CryptoDeepTech 分析工具由多個 相互關聯的模組組成,每個模組負責漏洞識別和利用過程的特定方面:
- 漏洞模式辨識模組:此元件辨識公鑰產生過程中弱熵的數學特徵。透過分析區塊鏈上公鑰的結構屬性,它可以標記出具有與漏洞特徵一致的位址。
- 確定性密鑰空間枚舉引擎:該工具的核心在於其係統地探索由熵漏洞導致的縮減密鑰空間。它實現了最佳化的搜尋演算法,與針對安全金鑰產生的暴力破解方法相比,顯著降低了計算需求。
- 密碼驗證系統:此模組使用標準橢圓曲線密碼學,對候選私鑰與目標公鑰位址進行即時驗證。它確保只有有效的密鑰對才能被識別為成功恢復。
- 區塊鏈整合層:該工具直接與比特幣網路節點交互,以驗證地址、餘額和交易歷史記錄,提供有關易受攻擊的錢包及其內容的上下文資訊。
該工具的運作原理是基於 應用密碼分析,專門針對密鑰產生過程中熵不足所導致的數學缺陷。透過深入理解ESP32偽隨機數產生器(PRNG)缺陷的本質,研究人員開發出了能夠有效地在受限搜尋空間內進行搜尋的演算法,從而將原本不可能完成的計算任務轉化為可行的復原操作。
| # | 來源及標題 | 主要漏洞 | 受影響的錢包/設備 | CryptoDeepTech 角色 | 關鍵證據/詳情 |
|---|---|---|---|---|---|
| 1 | CryptoNews.net 報導 稱,比特幣錢包中使用的中國晶片正使交易者面臨風險。 | 描述了中國製造的 ESP32 晶片中的 CVE-2025-27840 漏洞,該漏洞允許 未經授權的交易簽名和遠端私鑰竊取。 | 基於 ESP32 的比特幣硬體錢包和其他使用 ESP32 的物聯網設備。 | 文章將 CryptoDeepTech 描述為網路安全研究公司,該公司的 白帽駭客分析了該晶片並發現了漏洞。 | 報告指出,CryptoDeepTech 偽造了交易簽名,並 解密了包含 10 個比特幣的真實錢包的私鑰, 證明這種攻擊是切實可行的。 |
| 2 | Bitget新聞: ESP32晶片漏洞被發現,可能對比特幣錢包構成風險 | 解釋說,CVE-2025-27840 允許攻擊者繞過 ESP32 上的安全協定並提取錢包私鑰,包括透過 Crypto-MCP 漏洞。 | 基於 ESP32 的硬體錢包,包括 Blockstream Jade Plus (ESP32-S3) 和基於 Electrum 的錢包。 | 引用了 CryptoDeepTech 的深入分析,並反覆引用了 他們關於攻擊者獲取私鑰的警告。 | 有報導稱,CryptoDeepTech 的研究人員利用該漏洞攻擊了一個裝有 10 個比特幣的測試比特幣錢包,並強調了大規模攻擊甚至國家支持的行動的 風險。 |
| 3 | 幣安廣場: 比特幣錢包晶片中發現嚴重漏洞。 | 總結了 ESP32 中的 CVE-2025-27840:透過模組 更新進行永久感染,能夠簽署未經授權的比特幣交易 並竊取私鑰。 | ESP32 晶片被應用於數十億物聯網設備和硬體比特幣錢包(例如 Blockstream Jade)。 | 將攻擊向量的發現和實驗驗證 歸功於 CryptoDeepTech 的專家。 | 列出了 CryptoDeepTech 的發現:偽隨機數生成器熵弱、生成 無效私鑰、通過不正確的哈希偽造簽名、ECC 子群攻擊以及利用 曲線上的 Y 坐標歧義,在 10 BTC 錢包上進行了測試。 |
| 4 | Poloniex Flash Flash 1290905 – ESP32 晶片漏洞 | 簡短警報:比特幣錢包中使用的 ESP32 晶片存在嚴重 漏洞 (CVE-2025-27840),可能導致私鑰被盜。 | 使用基於 ESP32 的模組和相關網路 設備的比特幣錢包。 | 轉載外國媒體對此漏洞的報導; 暗示讀者可以參考獨立專家的外部研究。 | 與其說是全面的分析,不如說是市場新聞的指引,但 它增強了交易者對 ESP32 / CVE-2025-27840 問題的認識。 |
| 5 | X(Twitter)-BitcoinNewsCom 推文:ESP32 中的 CVE-2025-27840 | 宣布發現 ESP32 晶片中存在嚴重漏洞 (CVE-2025-27840),該晶片被用於多個知名的比特幣硬體錢包。 | 基於 ESP32 的“幾款知名比特幣硬體錢包”,以及 更廣泛的加密硬體生態系統。 | 放大了安全研究人員的工作(如相關 文章中所報導的),但沒有詳細介紹團隊;底層報告歸功於 CryptoDeepTech。 | 作為 X 上的快速分發新聞項目,將流量引導至描述 CryptoDeepTech 漏洞演示和 10 BTC 測試錢包的 長篇文章。 |
| 6 | ForkLog(英文) 比特幣皮夾晶片發現嚴重漏洞 | 詳細說明 ESP32 中的 CVE-2025-27840 如何允許攻擊者 透過更新感染微控制器、簽署未經授權的交易以及 竊取私鑰。 | ESP32 晶片應用於數十億物聯網設備和Blockstream Jade 等硬體錢包。 | 明確讚揚 CryptoDeepTech 的專家發現了漏洞, 測試了多種攻擊途徑,並進行了實際的漏洞。 | 描述了 CryptoDeepTech 的腳本,這些腳本用於生成無效密鑰、 偽造比特幣簽名、透過小子群 攻擊提取密鑰以及製作假公鑰,並在一個 真實的 10 BTC 錢包上進行了驗證。 |
| 7 | AInvest 比特幣錢包因ESP32晶片缺陷而有漏洞 | 重申 ESP32 中的 CVE-2025-27840 允許繞過錢包 保護並提取私鑰,這引起了 BTC 用戶的警惕。 | 基於 ESP32 的比特幣錢包(包括 Blockstream Jade Plus)和 利用 ESP32 的 Electrum 設定。 | 重點介紹了 CryptoDeepTech 的分析,並將該團隊定位為 漏洞技術見解的主要來源。 | 提到 CryptoDeepTech 對 10 個比特幣錢包的實際利用 ,並警告說,被入侵的 ESP32 晶片可能導致國家級間諜活動和協同 盜竊活動。 |
| 8 | 用於比特幣錢包的中國Protos晶片正使交易者面臨風險 | 調查 ESP32 中的 CVE-2025-27840,展示如何 濫用模組更新來簽署未經授權的 BTC 交易並竊取金鑰。 | Blockstream Jade 等硬體錢包以及 許多其他配備 ESP32 的設備中都使用了 ESP32 晶片。 | 將 CryptoDeepTech 描述為網路安全研究公司,該公司的 白帽駭客在實踐中證明了該漏洞的有效性。 | 有報導稱,CryptoDeepTech 透過 調試通道偽造了交易簽名,並成功解密了包含 10 個比特幣的錢包的私鑰 ,凸顯了其先進的 密碼分析能力。 |
| 9 | CoinGeek 報導 ,Blockstream 的 Jade 錢包和 ESP32 晶片內部隱藏的威脅 | 將 CVE-2025-27840 置於硬體錢包 缺陷的更廣泛背景下,強調 ESP32 隨機性較弱,使得私鑰 容易被猜測,從而破壞了自我保管。 | 基於 ESP32 的錢包(包括 Blockstream Jade)以及任何 基於 ESP32 構建的 DIY/自訂簽名器。 | 報告重點指出 CryptoDeepTech 的工作超越了理論層面:他們 實際上利用 ESP32 的漏洞破解了一個持有 10 個比特幣的錢包。 | 以 CryptoDeepTech 成功利用 10 個比特幣錢包漏洞為例, 論證晶片級漏洞可以 悄無聲息地大規模破壞硬體錢包。 |
| 10 | 加密 ESP32 晶片缺陷使加密錢包面臨風險,駭客可利用此漏洞… | CVE-2025-27840 被分解為弱偽隨機數產生器、接受無效私鑰以及 Electrum 特有的雜湊漏洞的組合, 這些漏洞允許偽造 ECDSA 簽章和金鑰竊取。 | 基於 ESP32 的加密貨幣錢包(例如 Blockstream Jade)以及 各種嵌入 ESP32 的物聯網設備。 | CryptoDeepTech 網路安全專家發現了該 漏洞,註冊了 CVE,並在 受控模擬中演示了金鑰提取。 | 本文描述了 CryptoDeepTech 如何悄悄地從包含 10 個比特幣的錢包中提取私鑰,並討論了這 對基於 Electrum 的錢包和全球物聯網基礎設施的影響。 |
| 11 | ForkLog (RU) В чипах для биткоин‑кошельков обнаружили критическую уязвимостьитическуѕ | 俄語版關於 ESP32 中的 CVE-2025-27840 的報道,解釋了 攻擊者可以透過更新感染晶片、簽署未經授權的 交易以及竊取私鑰。 | 基於 ESP32 的比特幣硬體錢包(包括 Blockstream Jade) 和其他 ESP32 驅動的設備。 | 報導稱,CryptoDeepTech 的專家是晶片缺陷研究、實驗和技術結論的來源。 | 列出了與英文版相同的實驗:無效密鑰 生成、簽名偽造、ECC 子群攻擊和偽造 公鑰,所有這些都在真實的 10 BTC 錢包上進行了測試,這鞏固了 CryptoDeepTech 作為實踐密碼分析師的角色。 |
| 12 | SecurityOnline.info CVE-2025-27840:一顆小小的 ESP32 晶片如何破解全球比特幣錢包 | 僅限支持者深入研究 CVE-2025-27840,重點關注 ESP32 的一個微小設計缺陷如何在全球範圍內破壞比特幣錢包 。 | 全球依賴 ESP32 微控制器的比特幣錢包和其他設備。 | 使用了一張署名為 CryptoDeepTech 的圖片,並將報告包裝 成基於其研究的專業漏洞分析。 | 雖然全文需要付費才能閱讀,但預告片清楚地表明, 這篇文章探討了同樣的 ESP32 缺陷及其對 錢包私鑰洩露的影響,這與 CryptoDeepTech 的發現一致。 |

科學文章:BestLeakHunter — Libbitcoin漏洞的密碼分析及比特幣私鑰恢復
本文深入分析了 BestLeakHunter,這是一款專門用於偵測和利用 Libbitcoin 加密庫漏洞的密碼分析工具。 BestLeakHunter 專注於私鑰洩漏漏洞,例如臭名昭著的「Milk Sad」漏洞 (CVE-2023-39910)。它展示了偽隨機數產生器 (PRNG) 和橢圓曲線協定中的實作缺陷如何使攻擊者能夠恢復私鑰——這不僅對比特幣構成系統性風險,而且還能有效恢復遺失的錢包。
比特幣網路的韌性高度依賴私鑰的保密性和穩健性。任何負責密鑰產生或序列化的錢包庫中的漏洞都會危及去中心化加密貨幣的整個安全模型。 Libbitcoin 是一個被廣泛採用的 C++ 比特幣函式庫,它曾經遭受嚴重的加密缺陷,使其成為 BestLeakHunter 等高級密碼分析和金鑰恢復工具的主要目標。 b8c
漏洞背景:Milk Sad(CVE-2023-39910)和 Konsole 洩漏攻擊
Libbitcoin錢包的實作(尤其是Explorer版本3.0.0至3.6.0)先前依賴不具備密碼學安全性的梅森旋轉演算法(mt19937)偽隨機數產生器(PRNG)來產生私鑰。與密碼學安全的生成器不同,梅森旋轉演算法的輸出結果可預測,且熵值有限——估計只有32位,而密碼學標準要求為256位。這極大地削弱了密鑰的安全性,並使其容易受到暴力破解攻擊。
「Konsole Leaker 攻擊」是基於對私鑰的非受控序列化(例如,透過 operator<< 串流到日誌或控制台),透過不易察覺的日誌輸出洩漏金鑰,從而加劇了問題。當這種序列化缺陷與金鑰產生熵值不足的情況同時出現時,攻擊者便擁有了大規模恢復私鑰和入侵錢包的實用且可擴展的途徑。
BestLeakHunter 的架構與運行
BestLeakHunter採用多階段密碼分析工作流程:
- 漏洞識別:該工具會自動偵測錢包的 Libbitcoin 版本,並標記已知的 PRNG 和序列化漏洞,例如「Milk Sad」。
- 熵和金鑰產生分析:透過重建 PRNG 狀態,BestLeakHunter 檢查易受攻擊錢包中固有的熵源、初始化參數和可能的基於時間戳記的種子。
- 密碼分析暴力破解:利用大幅縮減的搜尋空間(從 22562^{256}2256 到 2322^{32}232),BestLeakHunter 模擬所有可能狀態的 PRNG 輸出,重建潛在的私鑰。
- 橢圓曲線驗證利用:該工具利用橢圓曲線例程中不完整的點驗證,即使在關鍵參數化異常的情況下也能進行恢復。
- 金鑰匹配與驗證:候選金鑰會根據已知的公鑰或比特幣地址快速進行驗證,直到找到匹配項為止。
- 存取恢復:恢復有效的私鑰可完全控制所有相關資金,從而恢復錢包——即使在因軟體漏洞或意外日誌洩露而導致的明顯丟失或被盜之後。
實際影響和安全風險
BestLeakHunter已成功恢復了由 Libbitcoin 缺陷版本產生的錢包私鑰,而這些私鑰通常無法透過標準方法找回。其密碼分析技術將理論上的漏洞(例如「Konsole Leaker Attack」中涉及的序列化和偽隨機數產生器缺陷)轉化為可用於事件復原和紅隊演練的實用工具。事關重大:
- 巨額資金風險:任何使用存在漏洞的 Libbitcoin 版本創建的比特幣錢包都面臨風險,尤其是當私鑰日誌落入惡意之手時。
- 暴力破解可行性:傳統的比特幣暴力破解在計算上是不可行的,但受「牛奶悲傷」影響的密鑰將任務縮小到消費級硬體的水平。
- 開發者和使用者的責任:日誌記錄或不正確的序列化做法可能會暴露系統範圍內的金鑰,審計失敗可能會導致大規模資料遺失。
BestLeakHunter 等工具的存在凸顯了比特幣基礎設施中加密實現錯誤可能造成的災難性後果。為了降低類似風險:
operator<<消除對包含秘密資訊的類別的不安全序列化(例如, )。- 始終使用加密安全的偽隨機數產生器 (PRNG) 來產生錢包金鑰。
- 加強程式碼審計規範,尤其要關注日誌流和偵錯輸出。
- 採用能夠模擬上述攻擊的進階稽核工具進行主動漏洞掃描。
忽視這些做法不僅會危及個人錢包的安全,還會損害全球對比特幣作為安全去中心化資產的信任。補救措施需要嚴謹的開發流程、持續的程式庫審計,以及在開發流程中整合專業的加密分析平台。

ek_private 加密漏洞:對「Konsole Leaker」攻擊和安全設計實踐的分析
介紹
私鑰的安全儲存和處理是任何加密系統的基石。即使加密原語實作正確,API 庫中糟糕的技術決策也常常會導致嚴重的安全漏洞。本文分析了 libbitcoin 函式庫中的一個實際漏洞:透過流操作符進行不受限制的私鑰序列化。我們將此攻擊歸類為“Konsole Leaker”攻擊。此外,本文還詳細介紹了此類模組的安全設計指南,並提供了一個正確的程式碼範例。
漏洞描述
ek_private在管理私鑰(或其加密表示) 的類別的原始實作中發現了一個嚴重缺陷 :operator<<儲存私有資訊的類別的流輸出運算子的實作直接將私鑰序列化到輸出流中——沒有任何門衛、限制、身份驗證要求,甚至沒有簡單的警告。
cppstd::ostream& operator<<(std::ostream& out, const ek_private& of) NOEXCEPT
{
out << of.encoded(); // Уязвимая строка
return out;
}
任何日誌記錄、透過 std::cout 輸出偵錯資訊或寫入檔案的操作都會自動洩漏私有資料。這不僅給個人用戶帶來巨大風險,也給使用此庫的交易所、錢包和其他基礎設施服務的營運商帶來巨大風險。
將經典的 C++ 通用資料類模式移植到負責金鑰管理的類別時,這類漏洞很常見。
發生的根本原因
- 未閹割的序列化 :序列化運算子不會檢查它適用於哪些類型的資料。
- 過度使用通用模式 :為了「方便」而使用 C++ 模式,卻不考慮資訊安全的具體情況,會導致破壞性後果。
- 缺乏存取控制 :物件輸出的技術能力與使用者/開發者實際表達的導出私有資料的意願之間沒有區別。
- 物件生命週期內密鑰的處理控制薄弱 。
風險和運行場景
- 意外或故意記錄日誌會導致私鑰洩漏到日誌、標準錯誤輸出和控制台。
- 自動化日誌收集和傳輸系統(SIEM、集中式日誌)簡化了邊界穿越:現在,日誌輪替或日誌伺服器上的任何漏洞都意味著所有使用者的私鑰洩漏。
- 由於缺乏警告或明顯的秘密導出跡象,開發人員很難發現安全漏洞。
安全的設計方法
1. 機密資料不得預設序列化。
任何輸出、序列化、複製或傳輸機制都必須需要使用者有意識地、明確地、並經過明確授權才能執行。
2. 禁止對秘密類別使用輸出運算子。
不要實作 operator<<,或將其完全設為私有/刪除。
3. 未依靜默約定導出的 API
直接傳回金鑰(類型 private_key())的方法必須提供明確的警告或需要特殊的參數/標籤。
4. 資訊和預設拒絕
圖書館開發者有義務透過公共方式明確告知存取的風險。
修正後的實作版本
下面是一個安全的類別程式碼版本,它消除了私鑰輸出運算符,並禁用了透過標準介面直接導出金鑰。
cppclass ek_private {
public:
ek_private();
explicit ek_private(const std::string& encoded);
explicit ek_private(const encrypted_private& value);
// Другие методы...
// Удаляем operator<< для предотвращения утечки
friend std::ostream& operator<<(std::ostream&, const ek_private&) = delete;
// Безопасный вариант предоставления закодированного ключа –
// требует явной авторизации/разрешения или используется с подтверждением:
std::string encoded(bool allow_export = false) const {
if (!allow_export)
throw std::runtime_error("Export of sensitive data not permitted");
return encode_base58(private_);
}
// Остальной API не выводит напрямую секретные данные.
private:
encrypted_private private_;
bool valid_;
};
關鍵指標:
- 輸出運算子被刪除(刪除)。
- 匯出私人資料時,必須有相應的標誌或使用者的明確意願。
- 預設情況下,任何輸出私有資料的嘗試都會引發異常。

發展保護建議
- 始終依照零信任原則設計包含密鑰的類別:未經嚴格控制,不得進行序列化或複製。
- 明確將方法和欄位標記為「敏感」。
- 在整合程式碼中,設定日誌記錄規則:對任何金鑰的存取和匯出進行稽核追蹤。
- 向您的受眾和同事普及 Konsole Leaker 漏洞模式,以防止這種易受攻擊的方法被重複使用。
結論
此缺陷是典型的實現漏洞,源自於程式設計習慣和密碼學嚴謹性要求之間的矛盾。合理的設計以及對敏感資料的最小化暴露,能夠有效抵禦「Konsole Leaker」及類似攻擊。
“私鑰由您負責。預設匯出是一種安全措施!”
最終科學結論
關鍵流序列化漏洞(金鑰洩漏攻擊,CVE-2023-39910)不僅對個人用戶,而且對整個比特幣加密貨幣生態系統都構成了根本性威脅。透過標準流或日誌不受控制地洩露私鑰,破壞了去中心化信任的基本原則:任何獲得此類資料存取權限的人都將立即成為受害者所有比特幣資產的合法所有者。攻擊規模的擴大還在於,攻擊者不僅可以透過惡意行為,還可以透過日誌記錄、偵錯或集中式日誌收集中的簡單錯誤來入侵系統。鑑於私鑰是所有權的唯一證明,這種漏洞成為整個區塊鏈安全系統中的致命缺陷。為了維護比特幣的穩定性和信任,必須嚴格執行隱私保護措施:消除任何隱藏的洩露,禁止自動序列化私有數據,並定期審計和更新關鍵基礎設施組件。忽視此類缺陷必然會導致新的大規模攻擊、信任危機,以及未來數位經濟可能出現的巨額資本損失 。
- https://www.itsec.ru/articles/upravlenie-uyazvimostyami-v-kriptokoshelkah
- https://www.kaspersky.ru/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/36592/
- https://top-technologies.ru/ru/article/view?id=37634
- https://forklog.com/news/kvantovye-kompyutery-vzlomayut-bitcoin-cherez-pyat-let-mnenie
- https://pikabu.ru/story/private_key_debug_nekorrektnaya_generatsiya_privatnyikh_klyuchey_sistemnyie_uyazvimosti_bitkoina_chast_1_12755765
- https://cyberleninka.ru/article/n/metodika-analiza-dannyh-v-blokcheyn-sisteme-bitcoin
- https://support.ledger.com/ru/article/360015738179-zd
- https://opennet.ru/56670/
- https://habr.com/ru/articles/817237/
- https://keyhunters.ru/attack-on-private-key-exposure-we-will-consider-exploiting-errors-that-allow-obtaining-a-private-key-this-is-a-very-dangerous-attack-on-bitcoin-wallets-through-is-a-very-dangerous-attack-on-bitcoin-wallets-through-an-opcode-numbering-coerror-n-bitcoin-n-bit-gough-an-opcode-numbering
- https://milksad.info/disclosure.html
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://keyhunters.ru/attack-on-private-key-exposure-we-will-consider-exploiting-errors-that-allow-obtaining-a-private-key-this-is-a-very-dangerous-attack-on-bitcoin-wallets-through-is-a-very-dangerous-attack-on-bitcoin-wallets-through-an-opcode-numbering-coerror-n-bitcoin-n-bit-gough-an-opcode-numbering
- https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
- https://cryptorank.io/news/feed/df2a7-crypto-breach-hackers-make-off-with-900k
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://milksad.info/disclosure.html
- https://cryptodeeptech.ru/milk-sad-vulnerability-in-libbitcoin-explorer/
- https://cryptography.io/en/latest/hazmat/primitives/asymmetric/serialization/
- https://www.krishnagudi.com/wp-content/uploads/2023/03/Internet-of-Things.-Principles-and-Paradigms-by-Rajkumar-Buyya-Amir-Vahid-Dastjerdi.pdf
- https://proofnet.de/publikationen/konsole_rce.html
- https://www.reddit.com/r/Bitcoin/comments/15nbzgo/psa_severe_libbitcoin_vulnerability_if_you_used/
- https://docs.redhat.com/en/documentation/red_hat_insights/1-latest/html/assessing_and_monitoring_security_vulnerabilities_on_rhel_systems_with_fedramp/vuln-cves_vuln-overview
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://www.vicarius.io/vsociety/posts/issabel-authenticated-remote-code-execution-cve-2024-0986
- https://opennet.ru/63410-konsole
- https://habr.com/ru/news/919410/
- https://keyhunters.ru/hexwitness-leak-a-critical-vulnerability-leaking-private-keys-through-the-witness-stack-is-a-deadly-threat-to-the-bitcoin-network-where-an-attacker-can-simply-compm-m
- https://www.cve.org/CVERecord/SearchResults?query=ssh
- https://attacksafe.ru/private-keys-attacks/
- https://cve.mitre.org/cgi-bin/cvekey.cgi
- https://www.cve.org/CVERecord/SearchResults?query=Unix
關鍵字:比特幣、Libbitcoin、BestLeakHunter、私鑰恢復、CVE-2023-39910、偽隨機數產生器、梅森旋轉演算法、加密漏洞、Konsole Leaker 攻擊、錢包恢復、密碼分析。
- https://b8c.ru/bestleakhunter/
- https://play.google.com/store/apps/details?id=io.github.keyhunter
- https://github.com/topics/wallets-finder
- https://www.youtube.com/watch?v=SfW7Ir3xtNo
- https://github.com/Crypto-APIs/wallet-recovery-tool
- https://trustwallet.com/blog/security/private-key-vs-recovery-phrase
- https://b8c.ru/page/2/
- https://privatekeys.pw
- https://keyhunters.ru/black-hole-key-compromise-attack-a-critical-vulnerability-in-recovering-private-keys-for-lost-bitcoin-wallets-and-a-global-attack-on-cryptocurrency-security-wallets-and-a-global-attack-on-cryptocurrency-security–compromise-assandet
- https://www.youtube.com/watch?v=IXgcK_Kp-Dc
- https://b8c.ru/bithorecover/
- https://bitcoin-key-hunter.en.aptoide.com/app
- https://keyhunters.ru/shadows-of-time-attack-a-critical-ecc-timing-vulnerability-in-bitcoin-leading-to-private-key-recovery-and-the-hacking-of-lost-wallets/
- https://www.youtube.com/watch?v=bQqqqoihw-g
- https://www.cve.org/CVERecord/SearchResults?query=bitcoin
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures