Bitcoin Core 開發者披露了一個高嚴重性漏洞,可能允許礦工遠端讓某些比特幣節點崩潰。
摘要
- Bitcoin Core 披露了 CVE-2024-52911,影響 29.0 之前的版本,而舊版節點仍可在網路上被暴露。
- 為了觸發崩潰,礦工需要成本高昂的工作量證明區塊,使得攻擊者在現實中濫用歷史上不太可能。
- Cory Fields 於 2024 年在 Bitcoin Core 29.0 發布修補程式之前,私下通報了該漏洞。
該問題在 CVE-2024-52911 下被追蹤,影響 0.14.0 之後且 29.0 之前的 Bitcoin Core 版本。該漏洞已在 29.0 修正,29.0 於 2025 年 4 月發布。
Bitcoin Core 於 2026 年 5 月 5 日公開該問題,原因是最後一條仍可能受影響的 28.x 發行支線在 4 月 19 日達到生命週期終止。
漏洞影響區塊驗證
該問題涉及 Bitcoin Core 在區塊驗證期間使用的腳本解譯器。Bitcoin Core 表示,特別構造的區塊可能導致節點在該資料已被釋放後,仍嘗試存取記憶體。
在驗證期間,Bitcoin Core 會預先計算交易輸入資料,並將腳本檢查送往背景執行緒。在某些情況下,不合法的區塊可能破壞快取資料,而另一個執行緒仍在嘗試讀取它。
Bitcoin Core 表示,這可能讓攻擊者在具備足夠工作量證明的情況下,讓受害者節點崩潰。它也表示「崩潰」可能支援遠端程式碼執行,不過由於區塊資料的限制,這種結果「不太可能」。
攻擊需要昂貴的挖礦
該攻擊並不容易執行。礦工需要產出一個特別構造的區塊,且要有足夠的工作量證明才能到達鏈頂端。
這使得該攻擊成本高,因為這樣的區塊會是無效的。它無法獲得正常的區塊獎勵,使得攻擊者必須投入雜湊算力卻沒有收取通常的挖礦配發。
Bitcoin Core 並未表示該漏洞曾被用於真實攻擊。該公告聚焦於漏洞、修補方式以及披露時程。
該漏洞並未改變比特幣的共識規則。它與 Bitcoin Core 軟體中的記憶體處理相關,而不是用來定義有效比特幣交易或區塊的規則。
Cory Fields 通報了該漏洞
MIT Digital Currency Initiative 的 Cory Fields 在 2024 年 11 月 2 日私下通報了該漏洞。Bitcoin Core 表示,該通報包含一個概念驗證,並提出了降低風險的方法。
Pieter Wuille 在四天後透過 PR 31112 推出隱蔽修補。該拉取請求於 2024 年 12 月 3 日合併,且在 2025 年 4 月隨著 Bitcoin Core 29.0 帶入修補前完成。
該公告遵循 Bitcoin Core 對高嚴重性漏洞的披露政策。其政策表示,高嚴重性問題會在最後一個受影響發行版本的生命週期終止後才披露。
此外,使用 29.0 之前 Bitcoin Core 版本的節點運營者仍可能面臨舊漏洞。Bitcoin Core 不會自動更新,因此使用者必須自行安裝更新版本。
先前一份關於區塊鏈去中心化風險的報告,曾引用研究:在 2021 年 6 月,有 21% 的比特幣節點執行的是過時的 Bitcoin Core 軟體。這些背景也說明了為何舊版客戶端在修補發布很久之後,仍可能是安全疑慮。