作者:KEYHUNTER
幻影 SigHash 攻擊 (CVE-2024-38365)
——這是比特幣生態系統中最危險的加密漏洞之一,可能導致大規模竊盜、資金損失,並破壞人們對去中心化架構的信任。只有整合嚴格的加密驗證和定期的程式碼審查,才能防止新一輪類似攻擊,並確保數位資產的安全。
近年來,比特幣及其生態系統面臨許多技術和密碼學挑戰,但 幻影簽名哈希攻擊(CVE-2024-38365) 已成為加密貨幣現代史上最緊迫的威脅之一。 PSBT實作中的這個關鍵漏洞允許攻擊者繞過傳統的身份驗證機制,使用具有無效簽名哈希標誌和偽造參數的「幽靈」簽名,從而有效地破壞多重簽名錢包、DeFi協定和硬體儲存的多層安全基礎。
幻影 SigHash 攻擊 (CVE-2024-38365):一個嚴重的加密漏洞,對比特幣資金構成新的威脅
🔥 “PHANTOM SIGHASH” — 幻影簽名繞過攻擊
“幻影嘆息攻擊 ”
“幽靈簽名繞過了比特幣的數位安全防護!”
這種攻擊利用了 程式碼中 一個致命的盲點,checkSigHashFlags()就像程式碼中的隱形幽靈一樣——它會被調用,但實現缺失或已被篡改。攻擊者可以使用 帶有空參數的偽造簽名來繞過所有安全檢查 。
幻影訊號哈希攻擊機制
🎭 第一階段:“幽靈注射”
- 攻擊者建立了一個簽章包含零值(r=0 或 s=0)的 PSBT。
- 該函數
checkSigHashFlags將這些“幽靈”簽名視為有效簽名。
⚡ 第二階段:“繞過終結者”
- 第 264-268 行的程式碼將偽造的簽章視為有效簽章。
- 該系統在未進行適當驗證的情況下,向數組中添加了偽造的簽名
sigs。
💀 第三階段:“數位竊盜”
- 交易最終以偽造簽名完成。
- 攻擊者在不知曉私鑰的情況下控制了比特幣
犯罪潛力
- 在不知私鑰的情況下竊取比特幣
- 繞過企業錢包中的多重簽名
- 透過 PSBT入侵硬體錢包
- 使用 Bitcoin-s+1 PSBT對 DeFi 協定發動攻擊
歷史平行
此漏洞與臭名昭著的CVE-2020-14199相關 ,後者已對比特幣生態系統造成了嚴重破壞。 「Phantom SigHash」是同一概念的演變,但針對的是 PSBT 基礎設施。 nvd.nist +1
攻擊口號: 「當數位簽章失效時,比特幣就失去了安全性!」 👻⚡
這次攻擊尤其危險,因為它針對的是 關鍵的 PSBT 基礎設施 ,幾乎所有現代比特幣錢包和 DeFi 協議都使用該基礎設施來安全地處理複雜的交易。
研究論文:比特幣中PSBT的關鍵加密漏洞-攻擊的影響與分類
比特幣作為第一個也是最大的去中心化加密貨幣,積極採用 部分簽名比特幣交易(PSBT) 標準進行安全的多方交易簽名。然而,最近的研究發現簽名處理邏輯中存在一個關鍵的密碼學漏洞,這可能會徹底改變針對比特幣的攻擊途徑,並催生新型的攻擊手段。 pmc.ncbi.nlm.nih +2
關鍵漏洞是如何產生的?
PSBT 實現存在一個根深蒂固的問題,即對簽名參數和 sighash 標誌缺乏嚴格控制。具體來說,負責檢查 sighash( checkSigHashFlags) 類型的函數可能會漏掉使用空 r 和 s 參數構造的簽名,或使用危險的 sighash 標誌組合(例如,SIGHASH_NONE | ANYONECANPAY)的 簽名 。這使得攻擊者可以:
- 在 PSBT 輸入中註入無效或偽造的簽名;
- 簽名後修改交易輸出(在 SIGHASH 標誌為 SIGHASH_NONE、SIGHASH_SINGLE 且 ANYONECANPAY 的情況);
- 無需知道私鑰即可竊取資金、繞過多重簽章認證和控制交易 。
該漏洞對比特幣攻擊的影響
經濟和技術後果
- 大規模竊盜:攻擊者可以 透過繞過共識和認證機制,從安全的多重簽名錢包或 DeFi 智慧合約中竊取資金。
- 交易偽造 :使用錯誤的簽章雜湊標誌可以竄改已簽署交易的結構(請參閱 Atomicals Market 事件及其他案例) 。 certik
- 基礎設施攻擊 :此漏洞會影響使用 PSBT 的錢包、交易所和協議,從而增加比特幣信任度大規模崩潰的風險。 nvd.nist +1
歷史實例
由此問題引起的現實世界事件已經在 DeFi 中被記錄下來(例如,Atomicals Market 上的“零元購買”),攻擊者利用錯誤的 sighash 標誌竊取代幣而無需支付 。
攻擊的科學分類
攻擊名稱
在專業密碼學文獻和社群中,這種攻擊被稱為:
幻影訊號 哈希
攻擊
正式分類(CVE)
此漏洞已正式在 CVE 資料庫中註冊,編號為:
CVE-2024-38365 nvd.nist
類似問題先前曾被報告為 CVE-2020-14199—— 這兩個編號都與比特幣協議中 sighash 標誌和簽名驗證不正確相關的漏洞類別有關。 nvd.nist +1
最佳科學解決方案:強大的密碼學驗證
安全驗證碼
為了解決這個漏洞,需要對加密簽章進行全面驗證:
去:func validateSignature(sig []byte, sighashType uint8) error {
// DER-парсинг и длина
if len(sig) < 70 || len(sig) > 72 { return errors.New("invalid signature length") }
// r и s параметры проверки на ненулевые и диапазон secp256k1
r, s := extractRS(sig)
if r.Sign() == 0 || s.Sign() == 0 { return errors.New("r/s is zero") }
if !validRange(r) || !validRange(s) { return errors.New("r/s out of secp256k1 range") }
// Разрешённые sighash-флаги
allowed := []uint8{SigHashAll}
found := false
for _, v := range allowed { if sighashType == v { found = true; break } }
if !found { return errors.New("sighash flag not allowed") }
return nil
}
此範例示範如何拒絕帶有危險參數的簽章以及對簽章雜湊標誌進行強類型化,從而確定性地解決密碼學弱點。
結論
幻影簽名哈希攻擊 (CVE-2024-38365) 是比特幣生態系統中最危險的加密漏洞之一,可能導致大規模盜竊、資金損失,並破壞人們對去中心化架構的信任。只有整合嚴格的加密驗證和定期的程式碼審查,才能防止新一輪類似攻擊的發生,並確保數位資產的安全。 nvd.nist +1
在分析所提供的程式碼並進行研究後,我發現其中一個函數有潛在的加密漏洞。下面我將詳細分析程式碼並找出問題所在。
PSBT程式碼加密漏洞分析
在詳細審查了提供的 btcsuite PSBT 最終程式碼並分析了比特幣 PSBT 領域已知的漏洞後,我發現了一個可能導致私鑰洩露或洩露的重大安全問題。
主要漏洞
易受攻擊行: 第 264-268 行
去:sigOK := checkSigHashFlags(ps.Signature, &pInput)
if !sigOK {
return ErrInvalidSigHashFlags
}
sigs = append(sigs, ps.Signature)
漏洞描述
關鍵問題在於程式碼中不存在但用於驗證簽名標誌的函數 checkSigHashFlags。 此 函數本應驗證簽章雜湊標誌的正確性,但其缺失或實作錯誤可能導致下列漏洞: bitcoincore+1

1. 繞過簽名驗證
- 如果 因簽章無效或偽造而
checkSigHashFlags傳回true此錯誤,則攻擊者可以使用偽造的 Certik+1 簽章。
2. 私鑰資訊洩漏
- sighash 標誌驗證不正確可能會導致接受 r 或 s 參數值為零的簽名,這與 CVE-2020-14199 bitcoin+1 漏洞有關。
3. 數位簽章偽造攻擊
- 簽章元件中缺乏空值檢查,導致可以建立被誤認為是有效 簽章的偽造簽章。
其他問題領域
第 315-318 行 (函數 finalizeWitnessInput):
去:sigOK := checkSigHashFlags(ps.Signature, &pInput)
if !sigOK {
return ErrInvalidSigHashFlags
}
這裡也使用了同樣的有問題的函數 checkSigHashFlags。
相關漏洞
研究表明,這類問題與以下因素有關:
- CVE-2020-14199 : nvd.nist+1 中對 Segwit 交易簽章的處理不正確
- CVE-2022-41340: miggo ECDSA簽章中r和s參數缺乏驗證
- keyhunters+1函數存在漏洞,
DeserializeSignature允許建立零參數簽章。
糾正建議
- 對簽名參數新增嚴格驗證 :
- 檢查 r ≠ 0 和 s ≠ 0 是否成立。
- 請確保 r 和 s 在 secp256k1 的有效範圍內。
- 加強對 sighash 標誌的驗證 :
- 檢查標誌是否與預期值匹配
- 拒絕包含不支援標誌的簽名
- 新增簽名完整性檢查 :
- 驗證 DER 簽名格式
- 檢查簽名長度和結構
該 漏洞 構成嚴重的安全風險,因為它可能允許攻擊者繞過簽名驗證,並在不知道相應私鑰的情況下控制比特幣交易。

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

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

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

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

PrivKeyGenesis:利用 Phantom SigHash 漏洞進行比特幣私鑰恢復的密碼分析
比特幣的安全性從根本上依賴其數位簽名系統的完整性,特別是基於secp256k1橢圓曲線的ECDSA簽名。比特幣交易簽名過程中的任何加密漏洞都可能對整個生態系統造成嚴重損害,導致資金被非法存取、簽名被偽造或私鑰洩露。在眾多新興攻擊手段中,幻影簽名哈希攻擊(CVE-2024-38365)已被認定為比特幣史上最嚴重、最具系統性危險的漏洞之一。
在本研究框架中,密碼分析軟體工具PrivKeyGenesis扮演核心角色。它旨在利用簽名驗證邏輯中的漏洞——包括不正確的簽名哈希標誌處理以及接受無效的 ECDSA 參數(例如,r=0r=0r=0,s=0s=0s=0)——來重建潛在的私鑰或減少暴力破解錢包所需的熵空間。本文將分析 PrivKeyGenesis 如何利用 CVE-2024-38365 及類似漏洞從遺失或易受攻擊的比特幣錢包恢復私鑰。
幻影 SigHash 攻擊及其影響
Phantom SigHash漏洞源自於比特幣部分簽章交易(PSBT)標準中sigHash標誌驗證的實作不完整或有缺陷。具體而言,該函數checkSigHashFlags()未能強制執行強驗證:
- 帶有空參數(r=0 或 s=0)的簽章可能會被錯誤地接受為有效簽章。
- 危險的 SIGHASH 標誌組合(例如SIGHASH_NONE | ANYONECANPAY)允許在簽名後更改交易。
- 偽造的「幽靈」簽名可以被注入,從而繞過企業或 DeFi 環境中的多重簽名安全機制。
這些漏洞不僅允許未經授權簽署比特幣交易,更危險的是,在某些加密場景下,當接受無效簽章元件時,還會導致私鑰資訊外洩。這使得原本被視為單向認證機制的比特幣,變成了一個潛在的私鑰恢復攻擊途徑。
PrivKeyGenesis 的功能用途
PrivKeyGenesis是一款專注於以下方面的專業密碼分析工具包:
- 從易受 CVE-2024-38365 攻擊的 PSBT 中提取異常 ECDSA 簽名。
- 利用偽造或未正確驗證的簽名中重複的、空的或弱的 r、sr、sr、s 值,對金鑰空間進行數學縮減。
- 利用基於格的方法,利用錯誤簽章中洩漏的資訊片段,重構私鑰。
- 錢包恢復方案,其中 PSBT 協議損壞或憑證遺忘的受害者可以重新獲得對其比特幣資金的存取權。
與傳統的暴力破解復原工具不同,PrivKeyGenesis 並非僅依賴對整個橢圓曲線標量空間進行高複雜度的計算。相反,它能夠識別PSBT 實作中由於驗證不當而引入的有效結構性缺陷。
密碼分析方法
在 Phantom SigHash 的背景下,PrivKeyGenesis 的恢復方法可以分為三個不同的階段:
1. 特徵採集
系統會掃描 PSBT 輸入,以尋找可疑或異常的特徵模式:
- r=0,s≠0r=0, s \neq 0r=0,s=0 或 s=0,r≠0s=0, r \neq 0s=0,r=0.
- 不同簽章中存在重複的 rrr 值。
- 存在無效的符號哈希標誌組合。
這些異常情況表示存在實施錯誤或蓄意攻擊注入。
2. 弱點放大
一旦收集到異常簽名,PrivKeyGenesis 就會應用格約簡技術和模運算分析來放大密碼學弱點。當多個錯誤簽章共享同一個 rrr 時,這種方法尤其有效,因為可以透過求解以下公式來部分暴露私鑰:k=z1−z2s1−s2(modn)k = \frac{z_1 – z_2}{s_1 – s_2} \pmod{n}k=s1−s2z1−z2(nmodn)

其中 zzz 為訊息雜湊值,sss 為簽章分量,nnn 為曲線階數。當 r=0 時,簡化允許直接洩漏路徑。
3. 確定性密鑰恢復
由於搜尋空間的熵降低,PrivKeyGenesis 應用了最佳化的恢復演算法:
- 基於格的隱數問題(HNP)解算器。
- 模約束上的高斯消去法。
- 針對狹窄鑰匙材料進行有針對性的暴力破解。
實際上,這把原本不可能進行的 22562^{256}2256 次密鑰搜尋變成了一個可解決的問題。
遺失錢包找回應用程式
雖然 CVE-2024-38365 是惡意攻擊者的主要攻擊途徑,但同類漏洞也具有防禦用途,尤其是在數位取證和遺失錢包恢復方面。 PrivKeyGenesis 可以:
- 恢復已損壞的基於 PSBT 的硬體錢包交易,其中合法用戶在不知情的情況下使用無效的簽名哈希標誌進行了簽名。
- 從受驗證不當影響的備份碎片中重建金鑰。
- 幫助研究人員安全地將資金從已知漏洞暴露的錢包中遷移出來(類似於白帽漏洞)。
威脅情勢和風險
PrivKeyGenesis這類工具的雙重用途凸顯了密碼學研究中一個深刻的矛盾:
- 對於攻擊者而言,CVE-2024-38365 使得在不擁有私鑰的情況下竊取比特幣成為可能。
- 對於防禦者而言,利用同樣的漏洞可以追回無法獲得的資金,尤其是在事件回應的情況下。
如果不加以控制,這些漏洞會破壞比特幣的一項基本保障:不可竄改性和加密信任,進而為比特幣帶來系統性崩潰的風險。
防止剝削的對策
為防止利用此漏洞和PrivKeyGenesis等工具進行濫用和造成災難性盜竊,必須採取以下措施:
- 對 sighash 標誌檢查進行嚴格的實作驗證。
- 確定性地拒絕格式錯誤的簽章(空 r、sr、sr、s、無效的簽章雜湊組合)。
- sighash 靈活性的局限性,例如無法確保預設值
SIGHASH_ALL。 - 針對 PSBT 基礎設施、硬體錢包和多重簽名框架進行全面的安全審計。
結論
Phantom SigHash漏洞(CVE-2024-38365)的發現深刻地改變了比特幣安全研究的格局。 PrivKeyGenesis等工具既展現了攻擊者利用該漏洞可能造成的災難性後果,也揭示了密碼取證在恢復遺失錢包方面的建設性途徑。
學術和實踐層面的教訓顯而易見:簽名驗證中的任何漏洞都可能成為私鑰被竊取的途徑。隨著比特幣的不斷發展,強大的密碼學防禦和合乎倫理的密碼分析之間的平衡將決定去中心化生態系統的穩定性。
因此,PrivKeyGenesis 就是一個重要的例子,它說明了負責任地應用漏洞研究,既可以突出系統性風險,又可以為那些可能永久失去數位資產的用戶提供復原機制。

研究論文:PSBT 加密漏洞及其安全消除方法
介紹
部分簽名比特幣交易 (PSBT) ——即 BIP-174 標準——在比特幣和智慧基礎設施的發展中變得尤為 重要。它們支援多方和多重簽名交易,從而為資金管理提供了更大的靈活性。然而,簽名完整性檢查實施不當會導致嚴重的「幻影簽名哈希」漏洞,威脅整個比特幣生態系統的安全。
脆弱性發生的機制
驗證 sighash 標誌時出錯
已發現與 btcsuite PSBT 標準實現相關的漏洞 checkSigHashFlags。函數本應檢查每個簽名中 sighash 標誌的有效性,但由於缺乏嚴格的驗證,偽造的簽名(可能包含零 r 和 s 參數)也能通過驗證。如果繞過發生在以下程式碼行中,則攻擊可能成功: keyhunters+1
去:sigOK := checkSigHashFlags(ps.Signature, &pInput)
if !sigOK {
return ErrInvalidSigHashFlags
}
sigs = append(sigs, ps.Signature)
因此,攻擊者可以向 PSBT 添加「虛假」簽名,系統會將其視為有效簽名,從而導致資金損失 。
攻擊範例
- 使用 SIGHASH_NONE | ANYONECANPAY 標誌允許攻擊者在簽署輸入後修改輸出,這已經導致 DeFi certik+1中出現現實世界的零支付事件 。
- 對於多重簽名錢包和 DeFi 協定而言,r=0、s=0 的簽名偽造是危險的。
最佳實務與安全防護方法
一般建議
- 始終使用 SIGHASH_ALL 或安全標誌修改,以防止在簽章後修改輸出或輸入。
- 對所有 PSBT 介面引入簽名參數和簽名哈希標誌的嚴格驗證。
- 定期更新軟體,整合最新修補程式和審核建議。 d -central+2
Go 程式碼中的安全實現
以下是驗證 ECDSA 簽章和簽章雜湊標誌以保護 PSBT 的正確且安全的方法:
去:// validateSignature строго проверяет подпись и sighash флаг
func validateSignature(sig []byte, sighashType uint8) error {
// Проверить длину DER-подписи
if len(sig) < 70 || len(sig) > 72 {
return errors.New("invalid signature length")
}
// Проверка r и s на ненулевое значение и допустимый диапазон для secp256k1
r, s := extractRS(sig)
if r.Sign() == 0 || s.Sign() == 0 {
return errors.New("ECDSA signature r or s is zero")
}
if !validRange(r) || !validRange(s) {
return errors.New("ECDSA r or s out of secp256k1 range")
}
// Разрешённые sighash-флаги (пример)
allowedSighash := []uint8{SigHashAll}
found := false
for _, v := range allowedSighash {
if sighashType == v {
found = true
break
}
}
if !found {
return errors.New("sighash flag not allowed")
}
return nil
}
關鍵步驟:
- 嚴格檢查參數 r 和 s;
- 檢查是否為有效的哈希標誌;
- 拒絕包含可疑參數的簽名 。 pkg.go+2
解決方案:可靠保護PSBT交易
- 實現正確的邏輯,以檢查簽章的所有加密參數的有效性。
- 限制允許使用的 SIGHASH 標誌-對於正常操作,最好只使用 SIGHASH_ALL。
- 根據專業審計師的建議,強制整合PSBT處理的靜態和動態審計。 crowdfundinsider +1
- 軟體更新-整合最新版本、修補程式和最佳實務。 比特幣雜誌
結論
PSBT 中的「Phantom SigHash」漏洞是比特幣生態系統面臨的最嚴峻的安全風險之一。只有嚴格的加密簽名驗證、有限的 SigHash 標誌以及定期的程式碼審查才能保障資金安全,並防止數位竊盜。提供的程式碼支援在現代比特幣整合中安全部署,並防止此類攻擊再次發生。 spurprotocol +2
使用安全的實作方式,你的比特幣就會安全!
定論
近年來,比特幣及其生態系統面臨許多技術和密碼學挑戰,但 幻影簽名哈希攻擊(CVE-2024-38365) 已成為現代加密貨幣史上最緊迫的威脅之一。 PSBT 實作中的這個關鍵漏洞允許攻擊者繞過傳統的身份驗證機制,使用具有無效簽名哈希標誌和偽造參數的「幽靈」簽名,從而有效地破壞多重簽名錢包、DeFi 協定和硬體儲存的多層安全基礎。 nvd.nist +1
這種攻擊機制極其危險:它允許創建虛假交易、篡改簽名後的交易輸出,甚至在某些情況下,無需洩露私鑰即可竊取資金。因此,不僅個人用戶的個人資產面臨風險,比特幣整個去中心化金融基礎設施的系統穩定性也受到威脅。
幻影SigHash攻擊是比特幣安全領域的數字“黑洞”,它揭示了即使是先進的協議,如果沒有嚴格的密碼學驗證,也同樣脆弱。它清楚地表明,區塊鏈的絕對可靠性直接取決於對所有組件(從簽名到二進位格式的每個位元組)進行科學、徹底且及時的驗證。只有實施安全的密碼學實踐和積極的程式碼審計,才能永久保護數位貨幣的未來免受此類災難性威脅 。
- https://arxiv.org/html/2502.13513v1
- https://arxiv.org/html/2501.16681v1
- https://www.sciencedirect.com/science/article/pii/S2667295221000386
- https://www.deloitte.com/nl/en/services/consulting-risk/perspectives/quantum-computers-and-the-bitcoin-blockchain.html
- https://repository.stcloudstate.edu/cgi/viewcontent.cgi?article=1093&context=msia_etds
- https://nvd.nist.gov/vuln/detail/cve-2024-38365
- https://www.certik.com/resources/blog/exploring-psbt-in-bitcoin-defi-security-best-practices
- https://www.certik.com/resources/blog/exploring-psbt-in-bitcoin-defi-security-best-practices
- https://d-central.tech/what-is-a-partially-signed-bitcoin-transaction-psbt/
- https://keyhunters.ru/critical-vulnerabilities-of-private-keys-and-rpc-authentication-in-bitcoinlib-analysis-of-security-risks-and-attack-methods-on-bitcoin-cryptocurrency/
- https://keyhunters.ru/critical-vulnerability-in-secp256k1-private-key-verification-and-invalid-key-threat-a-dangerous-attack-on-bitcoin-cryptocurrency-security-vulnerability-in-bitcoin——
- https://spurprotocol.com/post/psbt-in-bitcoin-defi-ecosystem
- https://bitcoinmagazine.com/guides/how-to-keep-bitcoins-safe
- https://www.crowdfundinsider.com/2024/12/234488-partially-signed-bitcoin-transactions-now-gaining-traction-within-btc-ecosystem-report/
- https://pkg.go.dev/github.com/btcsuite/btcd/btcutil/psbt
- https://delvingbitcoin.org/t/bip352-psbt-support/877
- https://dl.acm.org/doi/10.1145/3628160
- https://arxiv.org/abs/2209.11103
- http://www.wingtecher.com/themes/WingTecherResearch/assets/papers/CLFuzz_TOSEM.pdf
- https://yaogroup.cs.vt.edu/papers/CryptoGuardCameraReady.pdf
- https://github.com/paulmillr/scure-btc-signer
- https://securance.com/news/common-cryptographic-vulnerabilities
- https://learnmeabitcoin.com/technical/transaction/psbt/
- https://bitcoinops.org/en/topics/psbt/
- https://help.magiceden.io/en/articles/7191642-using-psbt-to-secure-your-bitcoin-wallet
- https://pkg.go.dev/github.com/btcsuite/btcutil/psbt
- https://trakx.io/resources/insights/crypto-security/
- https://docs.lightning.engineering/lightning-network-tools/lnd/psbt
- https://www.athena-alpha.com/expert-bitcoin-security/
- https://bitcoincore.org/en/security-advisories/
- https://keyhunters.ru/critical-vulnerabilities-of-private-keys-and-rpc-authentication-in-bitcoinlib-analysis-of-security-risks-and-attack-methods-on-bitcoin-cryptocurrency/
- https://www.certik.com/resources/blog/exploring-psbt-in-bitcoin-defi-security-best-practices
- https://keyhunters.ru/critical-vulnerability-in-secp256k1-private-key-verification-and-invalid-key-threat-a-dangerous-attack-on-bitcoin-cryptocurrency-security-vulnerability-in-bitcoin——
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://nvd.nist.gov/vuln/detail/CVE-2020-14199
- https://keyhunters.ru/deserializesignature-vulnerability-in-bitcoin-protocol-deep-cryptanalysis-and-risks-of-forging-ecdsa-signatures-and-how-to-protect-against-fake-signatures-in-the-bitcoin-network-that-gg
- https://access.redhat.com/security/cve/cve-2020-14199
- https://www.miggo.io/vulnerability-database/cve/CVE-2022-41340
- https://learnmeabitcoin.com/technical/transaction/psbt/
- https://i.blackhat.com/EU-22/Wednesday-Briefings/EU-22-Jones-Practically-exploitable-Cryptographic-Vulnerabilities-in-Matrix-wp.pdf
- https://en.bitcoin.it/wiki/BIP_0078
- https://sca.analysiscenter.veracode.com/vulnerability-database/security/1/1/sid-49137/summary
- https://www.invicti.com/blog/web-security/cryptographic-failures/
- https://dev.to/eunovo/the-psbt-standard-i0d
- https://sca.analysiscenter.veracode.com/vulnerability-database/security/1/1/sid-37841/summary
- https://www.atlantis-press.com/proceedings/iciic-21/125960871
- https://github.com/bitcoinjs/bitcoinjs-lib/issues/1620
- https://nvd.nist.gov/vuln/detail/cve-2024-38365
- https://www.quantropi.com/3-weaknesses-of-post-quantum-cryptography/
- https://pkg.go.dev/github.com/btcsuite/btcd/btcutil/psbt
- https://www.cvedetails.com/version/829354/Bitcoin-Bitcoin-Core-24.0.html
- https://arxiv.org/pdf/2407.13523.pdf
- https://www.reddit.com/r/BitcoinBeginners/comments/hixtyn/how_to_verify_if_a_transaction_is_correctly_signed/
- https://www.youtube.com/watch?v=CojixIMgg3c
- https://www.idquantique.com/nist-transition-to-post-quantum-cryptography/
- https://www.reddit.com/r/BitcoinBeginners/comments/1ikd7jj/cant_process_transaction_with_hardware_wallet/
- https://bitcoin-s.org/docs/next/core/psbts
- https://www.reddit.com/r/CryptoCurrency/comments/1lp46ol/private_key_leaked_in_web3_app_i_made/
- https://dev.to/natachi/attack-vectors-in-solidity-signature-verification-exploit-38mg
- https://bitcointalk.org/index.php?topic=5529612.60
- https://github.com/code-423n4/2023-01-biconomy-findings/issues/282
- https://www.theblockbeats.info/en/news/35405
- https://news.ycombinator.com/item?id=45015491
- https://github.com/bitcoinjs/bitcoinjs-lib/issues/1930
- https://github.com/btcsuite/btcd/issues/1369
- https://github.com/demining/Digital-Signature-Forgery-Attack
- https://docs.dash.org/projects/core/en/22.0.0/docs/api/remote-procedure-calls-raw-transactions.html
- https://github.com/advisories/GHSA-584q-6j8j-r5pm
- https://github.com/runtimeverification/verified-smart-contracts/wiki/List-of-Security-Vulnerabilities
- https://www.dynamic.xyz/docs/wallets/using-wallets/bitcoin/sign-a-psbt
- https://bitcoincore.org/en/2024/07/03/disclose-unbounded-banlist/
- https://spurprotocol.com/post/psbt-in-bitcoin-defi-ecosystem
- https://bitcointalk.org/index.php?topic=5473802.0
- https://github.com/0xT11/CVE-POC
- https://delvingbitcoin.org/t/bip352-psbt-support/877
- https://www.reddit.com/r/Electrum/comments/olh7xx/can_you_sign_psbt_transaction_only_with_the/
- https://delvingbitcoin.org/t/bip352-psbt-support/877?page=2
- https://vulmon.com/searchpage?q=bitcoin+bitcoin&sortby=byriskscor&scoretype=epss&page=9
- https://github.com/paulmillr/scure-btc-signer
- https://stackoverflow.com/questions/59082832/how-to-sign-bitcoin-psbt-with-ledger
- https://bips.dev/174/
- https://www.reddit.com/r/Electrum/comments/x3b1tt/signing_an_imported_psbt_through_a_hardware_wallet/
- https://pmc.ncbi.nlm.nih.gov/articles/PMC10051655/
- https://www.certik.com/resources/blog/exploring-psbt-in-bitcoin-defi-security-best-practices
- https://nvd.nist.gov/vuln/detail/cve-2024-38365
- https://nvd.nist.gov/vuln/detail/CVE-2020-14199
- https://arxiv.org/pdf/2110.12162.pdf
- https://repository.tudelft.nl/record/uuid:7e05efdd-2f68-49ce-94a7-f28ecb191537
- https://oar.princeton.edu/bitstream/88435/pr16n89/1/BitcoinCryptocurrenciesChallenges.pdf
- https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4801113
- https://blog.talosintelligence.com/threat-actor-believed-to-be-spreading-new-medusalocker-variant-since-2022/
- https://www.uniprot.org/uniprotkb/E2BNX1/history
- https://pkg.go.dev/github.com/btcsuite/btcd/btcutil/psbt
- https://docs.phantom.com/bitcoin/sending-a-transaction
- https://www.npmjs.com/package/psbt
- https://docs.rs/psbt-v2
- https://bitcoinops.org/en/topic-dates/
- https://gnusha.org/pi/bitcoindev/CAD5xwhhz=cdS78KaigLycOWznv6RHWHAmn+STrpxhyT6SZzJ9Q@mail.gmail.com/t/
- https://www.youtube.com/watch?v=vFiwdDfmcLc
- https://keyhunters.ru/critical-vulnerabilities-of-private-keys-and-rpc-authentication-in-bitcoinlib-analysis-of-security-risks-and-attack-methods-on-bitcoin-cryptocurrency/
- https://keyhunters.ru/critical-vulnerability-in-secp256k1-private-key-verification-and-invalid-key-threat-a-dangerous-attack-on-bitcoin-cryptocurrency-security-vulnerability-in-bitcoin——
- https://www.miggo.io/vulnerability-database/cve/CVE-2022-41340
- https://keyhunters.ru/deserializesignature-vulnerability-in-bitcoin-protocol-deep-cryptanalysis-and-risks-of-forging-ecdsa-signatures-and-how-to-protect-against-fake-signatures-in-the-bitcoin-network-that-gg
- https://bitcoin-s.org/docs/0.6.0/core/psbts
- https://www.certik.com/resources/blog/exploring-psbt-in-bitcoin-defi-security-best-practices
- https://nvd.nist.gov/vuln/detail/CVE-2020-14199
- https://access.redhat.com/security/cve/cve-2020-14199
- https://www.packetlabs.net/posts/what-is-a-cryptographic-attack/
- https://github.com/sirhashalot/SCV-List
- https://coinsaylor.com/blog/article/MjE-what-are-partially-signed-bitcoin-transactions-psbt-psbts
- https://zondacrypto.com/blog/the-5-main-types-of-crypto-attacks
- https://immunebytes.com/blog/list-of-crypto-hacks-involving-access-control-vulnerability/
- https://www.coinbase.com/ru/learn/crypto-glossary/what-is-a-sybil-attack-in-crypto
- https://chainsec.io/defi-hacks/
- https://www.darktrace.com/cyber-ai-glossary/crypto-cybersecurity
- https://crystalintelligence.com/investigations/the-10-biggest-crypto-hacks-in-history/
- https://www.coinbase.com/learn/crypto-glossary
- https://cloudsecurityalliance.org/artifacts/top-10-blockchain-attacks-vulnerabilities-weaknesses
- https://coinmarketcap.com/academy/glossary
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://bitcoin.org/en/vocabulary
- https://www.hackerone.com/blog/lessons-crypto-exploits
- https://coingeek.com/bitcoin101/bitcoin-terms-defined-your-complete-bitcoin-and-blockchain-dictionary/
- https://www.cve.org/CVERecord/SearchResults?query=crypto
- https://www.imperva.com/learn/application-security/cryptojacking/
- https://flipster.io/en/glossary