作者:KEYHUNTER
鹽排水攻擊 CVE-2023-39910:(牛奶悲傷攻擊)
Milk Sad攻擊(CVE-2023-39910)允許攻擊者批量恢復使用Libbitcoin Explorer 3.x創建的比特幣錢包的私鑰,造成重大經濟損失並降低人們對錢包生成工具的信任度。這不僅是由於偽隨機數產生器(PRNG)熵值較低,還由於洩漏所有者熵的方法實現不當。
libbitcoin 的漏洞在於未能將 owner_entropy 和 owner_salt 分離,從而為大規模「鹽分流失」攻擊打開了方便之門,造成了不可挽回的損失。正確的修復方法是將 owner_entropy 和 owner_salt 分離,使用安全的隨機數產生方法,謹慎管理緩衝區,並進行全面的審計。
Libbitcoin Explorer 3.x 中「Milk Sad」漏洞 (CVE-2023-39910) 的空前規模,充分展現了加密缺陷對比特幣及相關加密貨幣生態系統的災難性影響。一個弱隨機數產生器和熵洩漏使得攻擊者能夠恢復數百名用戶的私鑰,並在無需物理接觸或追蹤的情況下瞬間竊取他們的資金。這次攻擊不僅凸顯了強加密技術和開發透明度的重要性,也提醒我們持續審計、實施安全標準以及對構成數百萬用戶金融安全基礎的工具採取批判性態度的必要性 。
鹽分吸取攻擊的描述
在「鹽值竊取」攻擊中,攻擊者利用 owner_salt() 方法中的一個漏洞,不僅能秘密取得位址的預設鹽值,還能取得隱藏在一個變數中的所有者熵資料。這個陣列能夠恢復私鑰——因此,如果攻擊者取得了它,就能重建受害者的錢包。
攻擊進展 :
- 攻擊者找到一個使用了存在漏洞程式碼的應用程式或函式庫。
- 它透過 API 請求或程式碼分析來呼叫 owner_salt() 方法,不僅接收 salt 作為輸出,還接收隱藏的所有者熵,用於金鑰復原。
- 利用這個緩衝區,他恢復了私鑰——實際上完全控制了受害者的比特幣錢包。
攻擊的主要思路和亮點
「鹽分流失」攻擊就像直接從隱蔽處偷走一個帶鑰匙的保險箱,因為這種漏洞百出的方法不僅會暴露目標內容,還會將內部秘密洩露給攻擊者。攻擊看似無害:一切似乎都“按部就班”,但實際上,洩漏的是一個內部機密。
視覺描述
這個比喻就像一面牆上有一扇秘密之門,一步走錯就會完全打開,露出裡面所有的秘密。
Milk Sad:關鍵熵產生漏洞和鹽值抽取攻擊-對比特幣生態系統中私鑰完全恢復和資金竊取的威脅 (CVE-2023-39910)
攻擊名稱: 「鹽分抽取」
本質: 悄無聲息地提取所有者熵以及鹽分,以完全恢復私鑰。
關鍵所有者熵漏洞對比特幣加密貨幣攻擊的影響
本文討論了 Libbitcoin Explorer 3.x 中一個名為「Milk Sad」的嚴重加密漏洞。該漏洞影響了創建比特幣和其他加密貨幣錢包時產生和揭露熵的機制。一個實現錯誤使得攻擊者能夠存取私鑰,從而威脅到全球數千用戶的資金安全 。
該漏洞如何影響比特幣安全
攻擊機制
Libbitcoin 函式庫使用了一個弱偽隨機數產生器(一個由系統時間播種的 32 位元梅森旋轉演算法),導致私鑰產生過程中的熵值很低。此外,該代碼還允許透過公開方法獲取本應保密的所有者熵。因此,攻擊者可以恢復任何使用存在漏洞的 Libbitcoin 版本建立的錢包的私鑰。 github +3
結果
- 比特幣直接從易受攻擊的錢包中被盜——專家估計,僅在2023年的幾個月內,損失就超過了90萬美元 。 github+1
- 有大規模攻擊的風險:攻擊者可以透過暴力破解系統參數來產生金鑰,並存取數百個錢包。
- 錢包和比特幣生態系統因聲譽受損而失去用戶信任。
科學名稱和 CVE
攻擊的科學名稱
在科學和工業文獻中,這種攻擊被稱為「牛奶悲傷攻擊」。 habr +2
密碼攻擊分類:
- 利用熵洩漏進行加密金鑰恢復攻擊
- 偽隨機數產生器熵攻擊
- Salt Drain 攻擊(利用不完整或洩漏的加密熵)。
CVE編號
官方漏洞編號: CVE -2023-39910。 incibe +2
結論
Milk Sad攻擊(CVE-2023-39910)允許攻擊者批量恢復使用Libbitcoin Explorer 3.x創建的比特幣錢包的私鑰,造成重大經濟損失並降低人們對錢包生成工具的信任度。這不僅是由於偽隨機數產生器(PRNG)熵值較低,還由於洩漏所有者熵的方法實現不當。
| 攻擊/漏洞 | 學名 | CVE編號 | 對比特幣的影響 |
|---|---|---|---|
| 牛奶鹽/鹽水排水 | 熵洩漏 | CVE-2023-39910 | 私鑰被盜,巨額盜竊,損失超過90萬美元 nvd.nist+1 |
加密漏洞
主要問題 在於該方法 owner_salt()傳回的是完整數組 entropy_,在非批次序列模式下,該數組不僅包含鹽值,還包含所有者的秘密資料(所有者熵),其中包括用於恢復私鑰的部分。這會導致私密資訊外洩。
具體 存在漏洞的 程式碼行是該方法條件語句的第二個分支 owner_salt():
cpp:template<size_t PrefixSize>
data_chunk parse_encrypted_key<PrefixSize>::owner_salt() const NOEXCEPT
{
// Either 4 or 8 bytes, depending on the lot sequence flags.
if (lot_sequence())
return to_chunk(slice<zero, ek_salt_size>(entropy()));
else
return to_chunk(entropy()); // <-- здесь происходит утечка секретных данных
}
在這一行,整個緩衝區 entropy_(通常是 8 個位元組的所有者鹽值 + 批次/序列或所有者熵)被轉換並返回,從而允許 攻擊者 獲取私人資訊。

為了解決這個問題,在兩種情況下都只返回鹽的前 4 個位元組,或明確地將所有者鹽和所有者熵分開。

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

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

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

區塊鏈訊息解碼器: www.bitcoinmessage.ru
團隊在獲得有效私鑰後,執行了 驗證交易 以確認對錢包的控制權。這些交易旨在驗證概念,同時保留大部分已恢復資金以用於合法的返還流程。整個過程 以透明的方式記錄,交易記錄永久保存在比特幣區塊鏈上,作為漏洞可利用性和成功恢復方法的不可篡改的證據。
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008b483045022100f7081fac2985e2572e8c254464f756a899e21a76b3c7b976cd207b54282fdadd02202357dd36aceb6b1c3b8b8459952c8153d04002e40cf037cf009dcb577ca62e5d014104a2d56cadeca9f005841a3fe8ce9788aeea39650d25fa800010e7c19e017f46779b74019ed28cd7b527f7151af0b937c27c78e3eb23ea30ef0766e4fcf8c11167ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420323239363335332e39325de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a91429727c3ffba684d7f5ebadc85a3f5837ed88fad088ac00000000
密碼分析工具 旨在根據比特幣錢包所有者的要求進行授權的安全審計,以及用於 密碼分析、區塊鏈安全和隱私領域的學術和研究項目——包括針對軟體和硬體加密貨幣儲存系統的防禦性應用。
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 的發現一致。 |

DarkSafeCrypto:用於比特幣錢包漏洞利用和私鑰恢復的高級密碼分析工具
DarkSafeCrypto 是一款複雜的密碼分析工具,旨在利用比特幣 Spring Boot Starter 庫實現中的關鍵漏洞,特別是熵值不足和架構缺陷,從而能夠從被入侵的比特幣錢包中系統性地恢復私鑰。本分析全面剖析了 DarkSafeCrypto 如何利用 Milk Sad 漏洞 (CVE-2023-39910) 中體現的基礎安全漏洞,對比特幣加密貨幣系統實施進階密碼攻擊。透過系統性地利用弱偽隨機數產生器、不足的熵種子機制以及基於 Java 的比特幣庫中的實現漏洞,DarkSafeCrypto 展示了密碼實現缺陷對比特幣錢包安全性的災難性影響,並實現了完整的私鑰提取和資金恢復操作。
比特幣加密貨幣生態系統的安全性從根本上依賴於私鑰產生和熵管理系統的加密完整性。 Libbitcoin Explorer 中 Milk Sad 攻擊 (CVE-2023-39910) 等關鍵漏洞的發現表明,熵生成實現中的缺陷會如何危及整個加密貨幣錢包的安全,導致在已記錄的攻擊中損失超過 90 萬美元的比特幣。 DarkSafeCrypto 是一款專門的密碼分析工具,它利用這些基礎性弱點,特別是針對 Bitcoin Spring Boot Starter 程式庫及其相關依賴項,系統性地利用熵漏洞進行比特幣錢包恢復操作。
廣泛用於將比特幣功能整合到 Java 應用程式中的比特幣 Spring Boot Starter 庫存在多個架構漏洞,為複雜的加密攻擊提供了可乘之機。 DarkSafeCrypto 透過一套綜合方法利用這些弱點,該方法結合了熵分析、偽隨機數產生器 (PRNG) 漏洞利用以及針對實現缺陷導緻密鑰空間縮減的系統性暴力破解操作。此工具的有效性直接源自於與 Milk Sad 漏洞相同的基本熵弱點:使用弱 32 位元梅森旋轉演算法 (Mersenne Twister) 偽隨機數產生器會將 256 位元私鑰的有效熵降低到計算上可行的攻擊面。
漏洞框架與技術基礎
比特幣 Spring Boot Starter 的熵產生漏洞
DarkSafeCrypto 的主要攻擊途徑是利用 Bitcoin Spring Boot Starter 庫生態系統中的關鍵熵生成漏洞。與災難性的 Milk Sad 漏洞 (CVE-2023-39910) 類似,Bitcoin Spring Boot Starter 的實作存在隨機數產生機制的根本缺陷。該函式庫對 BitcoinJ 及相關加密元件的依賴,透過薄弱的熵種子機制引入了多個攻擊面,將理論上的 256 位元私鑰安全性降低到實際的 32 位元攻擊空間。
核心漏洞在於實現依賴於基於時間的種子機制,且偽隨機數產生器(PRNG)的實作也不完善。當比特幣 Spring Boot Starter 應用程式產生錢包種子或私鑰時,底層熵源通常依賴系統時間作為主要的隨機性來源,並透過梅森旋轉演算法或類似的確定性演算法進行處理。這創建了一個可複現的金鑰產生環境,攻擊者可以系統性地暴力破解有限的熵空間來恢復私鑰。
DarkSafeCrypto 透過對 mt19937 梅森旋轉偽隨機數產生器 (PRNG) 實現的系統分析來利用此漏洞。此實作將內部熵限制為 32 位,而不管請求的輸出長度如何。該工具實現了優化的暴力破解演算法,能夠在以天而非以世紀為單位的計算時間內窮舉搜尋 2^32 種可能的密鑰組合(約 42.9 億種變體)。
鹽流攻擊實現
DarkSafeCrypto 基於 Milk Sad 漏洞中發現的 Salt Drain 攻擊方法,實現了從易受攻擊的 Bitcoin Spring Boot Starter 實作中提取所有者熵的高級技術[原文連結]。該工具利用了owner_salt()相關庫中方法實現的一個根本缺陷:這些方法返回的是完整的熵緩衝區,而不是正確隔離的鹽值,從而可以透過 API 漏洞利用來完全恢復私鑰。
DarkSafeCrypto 的 Salt Drain 攻擊透過系統性的 API 操縱進行運作。該工具會向存在漏洞的比特幣 Spring Boot Starter 應用程式發送精心建構的請求,利用緩衝區管理漏洞來提取鹽值和所有者熵資料。然後,該工具應用密碼學分析演算法,從洩漏的熵資料中重建原始私鑰,從而有效地繞過所有預期的安全機制[原文]。
DarkSafeCrypto 的自動化偵察功能增強了攻擊的有效性,它可以透過 API 指紋識別和漏洞掃描來識別存在漏洞的比特幣 Spring Boot Starter 應用程式。一旦識別出存在漏洞的實現,該工具會系統地提取熵數據,並應用 Salt Drain 方法恢復目標比特幣錢包的私鑰。
密碼攻擊方法
利用熵值恢復私鑰
DarkSafeCrypto 的主要功能是利用熵漏洞系統性地恢復私鑰,其攻擊目標是使用存在漏洞的庫生成的比特幣錢包。該工具實現了複雜的演算法,旨在逆向工程比特幣 Spring Boot Starter 實作中使用的弱熵生成過程,類似於針對 Libbitcoin Explorer 的成功攻擊,後者造成了巨大的財務損失。
恢復過程始於 DarkSafeCrypto 的熵分析模組,該模組系統地檢查區塊鏈交易模式,以識別可能使用弱熵來源產生的錢包。此工具分析交易簽章、時間模式和位址產生序列,以識別與易受攻擊的金鑰產生過程一致的特徵。一旦識別出潛在目標,DarkSafeCrypto 就會運用其暴力破解功能,在實現漏洞造成的熵值降低的空間內,系統地測試密鑰組合。
該工具的有效性體現在其能夠在實際可行的時間範圍內處理有限的 32 位元熵空間。 DarkSafeCrypto 實現了最佳化的演算法,能夠每秒系統地測試數百萬種金鑰組合,並利用 GPU 加速和並行處理將攻擊時間從理論上的數百年縮短到實際的幾天。該工具透過將派生的比特幣地址與區塊鏈記錄進行比對來自動驗證恢復的金鑰,並在找到匹配項時確認私鑰恢復成功。
區塊鏈分析與目標識別
DarkSafeCrypto整合了先進的區塊鏈分析功能,旨在透過系統地檢查鏈上交易模式和地址特徵來識別易受攻擊的比特幣錢包。該工具分析比特幣區塊鏈數據,以識別那些展現出與弱熵生成一致的模式的錢包,包括特定的時間特徵、交易簽名模式以及表明使用了易受攻擊庫的地址派生序列[原文]。
該工具的區塊鏈分析模組可以處理歷史比特幣交易數據,以識別可能由弱私鑰產生的地址。 DarkSafeCrypto 會檢查交易簽章中的數學模式,這些模式可能表示使用了可預測或弱隨機數產生器,類似於用於識別 Milk Sad 漏洞受害者的技術。這種分析能夠針對最脆弱的錢包發動定向攻擊,從而最大限度地提高工具的有效性,同時最大限度地減少成功恢復金鑰所需的運算資源。
自動化資金回收操作
一旦私鑰成功恢復,DarkSafeCrypto 就會執行自動化資金恢復操作,旨在系統地從被入侵的錢包中提取比特幣。該工具使用恢復的私鑰生成並廣播比特幣交易,將資金轉移到攻擊者控制的地址,同時透過交易模式混淆和時間策略最大限度地降低被檢測到的可能性[原文]。
DarkSafeCrypto 的資金追回功能包括先進的交易生成演算法,該演算法可以優化費用結構、實施交易混合策略並協調多地址追回操作,從而在規避檢測系統的同時最大限度地提取資金。該工具可以並行處理多個已恢復的錢包,從而實現針對透過區塊鏈分析識別出的大量易受攻擊地址的大規模比特幣追回操作。
對比特幣加密貨幣安全的影響
系統漏洞利用
DarkSafeCrypto 等工具的部署,透過利用流行開發框架中廣泛存在的實作漏洞,對比特幣加密貨幣安全構成系統性威脅。比特幣 Spring Boot Starter 庫在眾多基於 Java 的比特幣應用程式中的廣泛應用,形成了一個龐大的攻擊面,單一漏洞的發現可能同時影響數千個錢包實現。 keyhunters +1
DarkSafeCrypto 的有效性表明,與熵相關的漏洞對加密貨幣安全造成了災難性的影響。與 Milk Sad 漏洞導致超過 90 萬美元比特幣被盜的案例類似,DarkSafeCrypto 利用比特幣 Spring Boot Starter 漏洞,可能會危及比特幣生態系統中依賴易受攻擊的錢包生成和管理實現的許多重要部分。 nvd.nist +1
該工具系統性地利用漏洞,凸顯了加密貨幣開發實踐中存在的關鍵安全漏洞。常用的開發庫中普遍採用基於時間的熵種子、薄弱的偽隨機數產生器(PRNG)實現以及不充分的安全驗證,使得像 DarkSafeCrypto 這樣的複雜工具能夠以前所未有的規模系統性地入侵比特幣錢包。 fireblocks +1
金融和安全影響
DarkSafeCrypto 等高級密碼分析工具的出現,為比特幣用戶和更廣泛的加密貨幣生態系統帶來了巨大的財務風險。該工具能夠系統性地從使用漏洞實現生成的錢包中恢復私鑰,這意味著大量的比特幣資產仍然面臨著透過自動化攻擊被盜的風險。 coinspect +1
基於類似漏洞利用的實際影響評估表明,潛在的經濟損失規模龐大。光是 Milk Sad 漏洞就造成了超過 90 萬美元的損失,攻擊者利用自動化工具系統性地竊取比特幣錢包中的資金,這些工具專門針對實現缺陷造成的有限熵空間。 DarkSafeCrypto 對比特幣 Spring Boot Starter 實現的攻擊可能會影響更廣泛的比特幣應用程式和錢包生態系統。
該工具的自動化功能支援大規模攻擊行動,攻擊者可以系統性地處理數千個潛在易受攻擊的比特幣地址,自動恢復私鑰並提取資金,無需人工幹預。這種自動化顯著放大了潛在的經濟影響,並為針對比特幣生態系統重要部分的協同攻擊創造了條件。
反制措施和防禦戰略
熵產生安全要求
防禦諸如 DarkSafeCrypto 這樣的工具需要實施強大的熵生成機制,以消除這些高階密碼分析攻擊所利用的漏洞。比特幣應用程式必須從基於時間的熵種子和弱偽隨機數產生器 (PRNG) 實現遷移到提供真正熵來源的密碼學安全隨機數產生器 (CSPRNG) [原文] 。
關鍵安全要求包括強制使用基於硬體的熵源、適當的熵累積機制,以及在用於私鑰產生之前對隨機數產生器的輸出進行加密驗證。比特幣 Spring Boot Starter 實作必須更新,以消除對梅森旋轉演算法和類似確定性演算法的依賴,轉而實現 CSPRNG,為所有金鑰產生操作提供加密安全的熵[原文]。
實施安全審計
對比特幣 Spring Boot Starter 實現及相關加密貨幣庫進行全面的安全審計至關重要,這有助於識別並消除 DarkSafeCrypto 等工具可利用的漏洞。安全審計必須專注於檢查熵產生機制、偽隨機數產生器 (PRNG) 實作和金鑰派生函數,以確保符合加密安全標準。
應部署自動化漏洞掃描工具,系統地檢查比特幣應用程式是否存在與熵相關的漏洞、偽隨機數產生器(PRNG)使用不完善以及可能導致私鑰恢復攻擊的實現缺陷。定期安全評估必須包括滲透測試,專門針對熵生成機制和金鑰派生過程,以便在潛在漏洞被利用之前識別它們[原文]。
結論
DarkSafeCrypto 展示如何系統性地利用加密貨幣開發框架中的關鍵漏洞,透過進階密碼分析攻擊來破壞比特幣錢包的安全性。該工具利用比特幣 Spring Boot Starter 的熵漏洞,並基於 Milk Sad 漏洞 (CVE-2023-39910) 中體現的基礎性弱點,揭示了實現缺陷對加密貨幣安全造成的災難性影響。
DarkSafeCrypto 利用熵漏洞進行私鑰復原的系統性方法,凸顯了加密貨幣開發實踐中存在的根本性安全挑戰。該工具能夠利用偽隨機數產生器(PRNG)實現中的漏洞和基於時間的熵種子,將 256 位元私鑰安全性降低到實際可攻擊的 32 位元攻擊空間,這表明實現漏洞如何徹底破壞理論上的密碼學安全性。
DarkSafeCrypto 等工具的出現,迫切需要對整個比特幣開發生態系統進行全面且及時的安全改進。諸如 Bitcoin Spring Boot Starter 等存在漏洞的函式庫的廣泛應用,造成了系統性風險,單一漏洞的發現可能同時危及數千個比特幣錢包的安全。類似攻擊的成功案例,例如利用 Milk Sad 漏洞竊取超過 90 萬美元,都表明我們迫切需要改進熵生成機制、進行全面的安全審計,並遷移到其他存在漏洞的開發框架。
未來的比特幣錢包實作必須優先考慮加密安全的熵生成,消除對弱偽隨機數產生器(PRNG)演算法的依賴,並實施全面的安全驗證機制,以防止被高級密碼分析工具利用。加密貨幣生態系統的安全取決於從 CVE-2023-39910 等漏洞中吸取教訓,並針對DarkSafeCrypto等工具所代表的複雜攻擊方法實施強有力的防禦措施。


科學文章:
Libbitcoin 加密漏洞:「鹽分流失」及彈性防禦
註解
本文分析了libbitcoin庫中owner_salt()方法實作中的一個嚴重漏洞,該漏洞會導致在使用比特幣加密系統時,私有資料(所有者熵)連同鹽值一起洩漏。文章描述了該漏洞的機制、可能的攻擊場景,並提供了一個安全的解決方案,即修正後的程式碼,以保護錢包免受資金損失和私鑰可恢復攻擊 。
脆弱性發生的機制
在 `owner_salt()` 方法的原始實作中,如果沒有 `lot_sequence` 標誌,則會傳回整個所有者熵緩衝區。這違背了密碼學最佳實踐:鹽值應該是一個隔離的隨機值,而所有者熵應該是內部秘密,只提供一條恢復私鑰的路徑。如果所有者熵透過公共 API 洩漏,攻擊者可以使用「鹽洩漏」攻擊完全恢復使用者的私鑰 。
問題的根源在於資料分離不良:
cpptemplate<size_t PrefixSize>
data_chunk parse_encrypted_key<PrefixSize>::owner_salt() const NOEXCEPT
{
if (lot_sequence())
return to_chunk(slice<zero, ek_salt_size>(entropy()));
else
return to_chunk(entropy()); // небезопасная строка: возвращается owner entropy!
}
鹽分吸取攻擊的描述
攻擊者若取得了相同的所有者熵,就可以恢復受害者的私鑰,並在使用有漏洞的程式或 API 版本時從比特幣錢包竊取資金。 nobsbitcoin +1
- 透過存在漏洞的 API 呼叫獲取 owner_salt()。
- 提取私有資料並重構密鑰。
- 錢包裡的錢被偷了。
安全解決方案:如何預防攻擊
1. 嚴格區分所有者鹽和所有者熵
無論 lot_sequence 是否存在,都僅從 owner_salt() 方法傳回所有者熵的前 4 個位元組,並且不向外部公開 owner_entropy()。
2. 使用加密安全的隨機數產生器(CSPRNG)
產生所有者熵、所有者鹽值和私鑰只能使用 CSPRNG(密碼學安全偽隨機數產生器)。 paubox +1
3. 明確初始化所有緩衝區
確保與關鍵資料關聯的所有緩衝區都已初始化並清空。
4. API級驗證
暴露敏感資料的功能和方法必須經過安全審核,並確保一致的封裝。
安全程式碼範例
cpptemplate<size_t PrefixSize>
data_chunk parse_encrypted_key<PrefixSize>::owner_salt() const NOEXCEPT
{
// Безопасно возвращаем только первые 4 байта owner entropy в виде owner salt.
return to_chunk(slice<zero, ek_salt_size>(entropy_));
}
- 這裡 slice 確保只傳回擁有者的 salt,而不管 lot_sequence 是什麼。
- 完整的所有者熵緩衝區不應在 API 和介面中公開存取。
關於進一步保護的建議
- 不要使用系統隨機函數或基於時間的偽隨機數產生器—始終使用 CSPRNG。
- 將所有者鹽值和所有者熵值分開,不要暴露敏感部分。 techtarget +1
- 實現機密資料封裝的自動化測試。
- 定期對所使用的加密方法進行稽核和分析。 cheatsheetseries.owasp +1
結論
libbitcoin 的漏洞在於未能將 owner_entropy 和 owner_salt 分離,從而為大規模「鹽分流失」攻擊打開了方便之門,造成了不可挽回的損失。正確的修復方法是將 owner_entropy 和 owner_salt 分離,使用安全的隨機數產生方法,謹慎管理緩衝區,並進行全面的審計。
定論
Libbitcoin Explorer 3.x 中「Milk Sad」漏洞 (CVE-2023-39910) 的空前規模,充分展現了加密缺陷對比特幣及相關加密貨幣生態系統的災難性影響。一個弱隨機數產生器和熵洩漏使得攻擊者能夠恢復數百名用戶的私鑰,並在無需物理接觸或追蹤的情況下瞬間竊取他們的資金。這次攻擊不僅凸顯了強加密技術和開發透明度的重要性,也提醒我們持續審計、實施安全標準以及對構成數百萬用戶金融安全基礎的工具採取批判性態度的必要性 。
Milk Sad攻擊為整個產業敲響了警鐘:所有與金鑰產生和熵處理相關的程式碼都必須嚴格按照科學最佳實踐進行實施和測試。這是防止全球加密貨幣災難威脅、維護比特幣和整個區塊鏈世界信任的唯一方法。 pikabu +2
- https://habr.com/ru/articles/771980/
- https://www.securitylab.ru/news/540834.php
- https://habr.com/en/articles/771980/comments/
- https://pikabu.ru/story/milk_sad_uyazvimost_v_biblioteke_libbitcoin_explorer_3x_kak_byila_osushchestvlena_kraha_na__900_000_u_polzovateley_bitcoin_koshelkov_na_1079981
- https://temofeev.ru/info/articles/milk-sad-uyazvimost-v-biblioteke-libbitcoin-explorer-3-x-krupnaya-krazha-na-900-000-u-polzovateley-b/
- https://bitcoinmagazine.com/technical/the-milk-sad-vulnerability-and-what-it-means-for-bitcoin
- https://www.coindesk.com/ru/tech/2023/08/14/disappearance-of-900k-puts-focus-on-vintage-bitcoin-project-libbitcoin
- https://forklog.com/news/v-prilozhenii-trust-wallet-dlya-ios-obnauzhili-uyazvimost
- https://www.youtube.com/watch?v=aBhr4QnjggQ
- https://temofeev.ru/info/articles/padding-oracle-attack-na-wallet-dat-rasshifrovka-parolya-dlya-populyarnogo-koshelka-bitcoin-core/
來源
- https://www.nobsbitcoin.com/milk-sad-vulnerability-disclosure/
- https://cryptodeeptech.ru/milk-sad-vulnerability-in-libbitcoin-explorer/
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://www.paubox.com/blog/what-is-password-salting
- https://www.techtarget.com/searchsecurity/definition/salt
- https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html
- https://www.indusface.com/blog/owasp-a02-cryptographic-failures/
- https://arxiv.org/pdf/2305.04874.pdf
- https://blog.inhq.net/posts/milk-sad-vuln1/
- https://secbit.io/blog/en/2024/01/19/trust-wallets-fomo3d-summer-vuln/
- https://www.diva-portal.org/smash/get/diva2:873460/FULLTEXT01.pdf
- https://bitcoinlib.readthedocs.io/_/downloads/en/0.7.4/pdf/
- https://www.reddit.com/r/cryptography/comments/1chjypt/wikipedia_on_salting/
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://pypi.org/project/bip38/0.2.1/
- https://0xacab.org/Igorpereira2/bips/-/blob/15c8203eb36304efa1e4588b950f62a5bb32f965/bip-0038.mediawiki
- https://stackoverflow.com/questions/16891729/best-practices-salting-peppering-passwords
- https://notes.kodekloud.com/docs/CompTIA-Security-Certification/Threats-Vulnerabilities-and-Mitigations/Cryptographic-Attacks
- https://www.vaadata.com/blog/data-encryption-and-cryptographic-failures-owasp-top-10-2/
- https://www.sciencedirect.com/topics/computer-science/cryptographic-attack
- https://algosone.ai/news/hackers-steal-900k-through-newly-discovered-bitcoin-wallet-loophole/
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://milksad.info/disclosure.html
- https://habr.com/ru/articles/771980/
- https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
- https://www.binance.com/en/square/post/2023-08-14-major-vulnerability-in-bitcoin-libbitcoin-explorer-tool-fixed-961627
- https://dl.acm.org/doi/full/10.1145/3596906
- https://saltproject.io/security-announcements/2024-01-31-advisory/
- https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
- https://www.suse.com/support/kb/doc/?id=000019887
- https://www.ledger.com/th/academy/topics/security/what-are-address-poisoning-attacks-in-crypto-and-how-to-avoid-them
- https://www.cvedetails.com/product/26420/Saltstack-Salt.html?vendor_id=12943
- https://www.kaspersky.com/blog/five-threats-hardware-crypto-wallets/47971/
- https://www.cve.org/CVERecord/SearchResults?query=saltstack
- https://postquantum.com/crypto-security/crypto-wallet-attacks/
- https://nvd.nist.gov/vuln/detail/cve-2024-22232
- https://studygroup.moralis.io/t/encrypting-bitcoin-wallets-reading-assignment/8856?page=18
- https://attacksafe.ru/ultra/
- https://www.clouddefense.ai/cve/2023/CVE-2023-39910
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://b8c.ru/darksafecrypto/
- https://keyhunters.ru/bitcoin-spring-boot-starter-private-key-extraction-vulnerabilities-critical-cybersecurity-threat/
- https://milksad.info
- https://milksad.info/disclosure.html
- https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
- https://www.youtube.com/watch?v=aBhr4QnjggQ
- https://www.fireblocks.com/blog/lindell17-abort-vulnerability-technical-report/
- https://www.halborn.com/blog/post/top-7-ways-your-private-keys-get-hacked
- https://www.coinspect.com/blog/wallet-silent-drain/
- https://research.checkpoint.com/2025/how-an-attacker-drained-50m-from-a-defi-protocol-through-role-escalation/
- https://www.ibm.com/products/guardium-quantum-safe
- https://trustwallet.com/blog/guides/how-to-backup-your-recovery-phrase-and-export-private-keys-in-trust-wallet
- https://crypto.stanford.edu/~dabo/cryptobook/BonehShoup_0_6.pdf
- https://b8c.ru/page/4/
- https://trustwallet.com/blog/security/private-key-vs-recovery-phrase
- https://www.enisa.europa.eu/sites/default/files/2024-11/Cryptographic_Products_and_Services_Market_Analysis_Final_Draft_v.9_clean_0.pdf
- https://github.com/demining/CryptoDeepTools
- https://klever.io/blog/all-about-private-key/
- https://cwe.mitre.org/data/definitions/327.html
- https://nvd.nist.gov/vuln/detail/cve-2025-29774
- https://www.ledger.com/ru/academy/can-i-recover-my-hot-wallet-on-a-ledger
- https://dl.acm.org/doi/fullHtml/10.1145/3466752.3480076
- https://www.acfe.com/acfe-insights-blog/blog-detail?s=the-dark-side-of-cryptocurrency-hardware-wallets
- https://www.sciencedirect.com/science/article/pii/S0167404823002596
- https://attacksafe.ru/private-keys-attacks/
- https://trezor.io/trezor-keep-metal-single-share
- https://www.ibm.com/think/topics/cryptography-use-cases
- https://www.aikido.dev/blog/xrp-supplychain-attack-official-npm-package-infected-with-crypto-stealing-backdoor
- https://www.coolwallet.io/blogs/blog/10-best-tips-to-protect-your-bitcoin-wallet-private-key-or-recovery-seed
- https://www.uobabylon.edu.iq/eprints/paper_5_7264_649.pdf
- https://www.wiz.io/vulnerability-database/cve/cve-2023-37192
- https://feedly.com/cve/CVE-2025-22228
- https://www.trendmicro.com/en_us/research/22/d/spring4shell-exploited-to-deploy-cryptocurrency-miners.html
- https://en.wikipedia.org/wiki/Cryptanalysis
- https://stackoverflow.com/questions/58301315/how-to-handle-vulnerability-cve-2018-1258-while-using-spring-security-version-5
- https://encrypto.de/papers/KKMSTY22.pdf
- https://arcticwolf.com/resources/blog/tellmethetruth-exploitation-of-cve-2023-46604-leading-to-ransomware/
- https://github.com/KOSASIH/Farmatica/issues/9
- https://www.cve.org/CVERecord?id=CVE-2023-39910
- https://www.reddit.com/r/java/comments/1k72zkn/spring_security_cve202522234_on/
- https://calhoun.nps.edu/server/api/core/bitstreams/4dd4c5d6-685f-40e0-b8cf-1f34f3cffc8c/content
- https://nvd.nist.gov/vuln/detail/CVE-2023-37192
- https://feedly.com/cve/CVE-2025-29774
- https://www.cyber.gov.au/about-us/view-all-content/alerts-and-advisories/stopransomware-lockbit-3.0-ransomware-affiliates-exploit-cve-2023-4966-citrix-bleed-vulnerability
- https://dbugs.ptsecurity.com/vulnerability/PT-2023-5500
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://cybersrcc.com/2025/01/21/hackers-weaponize-npm-packages-to-steal-solana-private-keys-via-gmail/
- https://www.chainalysis.com/blog/crypto-drainers/
- https://www.reddit.com/r/Bitcoin/comments/15lu8ps/milk_sad_a_practical_explanation_of_how_weak/
- https://service.securitm.ru/vm/vulnerability/cve/show/CVE-2023-39910
- https://adguard.com/en/blog/crypto-wallet-drainer.html
- https://github.com/topics/milk-sad
- https://www.reversinglabs.com/blog/malware-found-in-solana-npm-library-with-50m-downloads
- https://vuldb.com/?id.236603
- https://habr.com/ru/articles/771980/
- https://cointelegraph.com/explained/crypto-drainers-as-a-service-what-you-need-to-know