極端條件下 undo 檔可能溢位
礦工有辦法把 Bitcoin Core 的 undo 檔撐過 4 GiB,使 32 位元位置值繞回、資料毀損,若接著發生特定重組,節點就會關閉;Windows 與 32 位元系統不需重組,到 2 GiB 就出問題。CVE-2026-117346 評為低風險,而且大約要全網一個月的區塊才辦得到。32.1、31.2、30.4 與 29.5 已修正 64 位元系統,32 位元節點和放在 FAT32 上的區塊儲存仍受影響。
Bitcoin Core
比特幣的參考實作。其網站發布新版本消息、安全性公告與專案聲明。
119 篇文章
礦工有辦法把 Bitcoin Core 的 undo 檔撐過 4 GiB,使 32 位元位置值繞回、資料毀損,若接著發生特定重組,節點就會關閉;Windows 與 32 位元系統不需重組,到 2 GiB 就出問題。CVE-2026-117346 評為低風險,而且大約要全網一個月的區塊才辦得到。32.1、31.2、30.4 與 29.5 已修正 64 位元系統,32 位元節點和放在 FAT32 上的區塊儲存仍受影響。
Bitcoin Core
poll() 與 select() 的 socket 例外監控在 Bitcoin Core 29.5 趨於一致(#36665),暫停傳送的對等節點也開始受強制逾時約束(#36667)。flatfile 位置改用 64 位元整數(#36669),節點會假定種子提供的位址支援 v2transport,另有一個 DNS 種子遭移除。
Bitcoin Core
惡意對等節點可佯稱不支援 BIP 31 的 ping,避開 20 分鐘斷線機制,再放慢讀取速度,讓節點的傳送佇列持續膨脹:每個入站連線每小時最多 2MB,每個出站連線最多 5MB。這個中度風險漏洞編號 CVE-2026-117349,由 #36667 修補,收錄於 Bitcoin Core 32.1、31.2、30.4 與 29.5;-blocksonly 節點的曝險則小得多。
Bitcoin Core
連線中的對等節點只要傳送 TCP 緊急資料,就可能讓 Windows、macOS 與 BSD 上的節點當機:這些資料會繞過 select() 後端暫停讀取的機制,在記憶體中無上限地累積(CVE-2026-117350)。Linux 節點採用 poll(),不受影響。這個中度風險漏洞由 Project Loupe 的 LLM 掃描發現,Bitcoin Core 32.1、31.2、30.4 與 29.5 已修補。
Bitcoin Core
依照 BIP 323,Bitcoin Core 30.4 不再把 BIP 9 的第 5 至 28 位元當成軟分叉信號,區塊設定這些位元也不會再跳出未知部署警告(#34779)。網路方面,暫停傳送的對等節點現在有強制逾時(#36667);flatfile 位置則改用 64 位元整數(#36669)。
Bitcoin Core
Bitcoin Core 31.2 替私密廣播設下上限:尚未收到網路回傳的交易佇列最多 10,000 筆,滿了就拒收新交易,呼叫端得用 abortprivatebroadcast 清空(#35406)。另外依 BIP 323,版本位元 5 至 28 不再算作軟分叉信號。
Bitcoin Core
私密廣播洩漏發送者 IP 位址的風險在 Bitcoin Core 32.1 解除:過去 v2 連線失敗後改以 v1 重試時,可能直接連線而沒有經過 Tor。-maxconnections 預設值從 125 調高到 200,對外交易轉發也改由全域積壓量限速,不再逐一對等節點計算。
Bitcoin Core
正常運作時磁碟讀寫量偏高,問題出在 chainstate 資料庫不斷重寫自身的大部分內容,Bitcoin Core 29.4 修掉了這個錯誤:停用 LevelDB 的 seek compaction,改為定期壓實 chainstate(#35465)。
Bitcoin Core
chainstate 造成的磁碟頻繁讀寫在 Bitcoin Core 30.3 畫下句點。這一版也修復 feebumper 在無法取得合併加價手續費時當機(#34870),以及幣選擇把金額算成布林值的錯誤(#34888)。PSBT 方面,解序列化 pubnonce 與部分簽章時現在會驗證 MuSig2 公鑰(#34219)。
Bitcoin Core
Bitcoin Core 31.1 補上 -privatebroadcast 的 IP 位址外洩:部分連線原本走明網,而不是已啟用的隱私網路。chainstate 反覆重寫導致磁碟活動過量的問題也一併解決,MuSig2 金鑰聚合則開始拒絕空的公鑰清單(#35316)。
Bitcoin Core
啟用 -privatebroadcast 的 Bitcoin Core 31.0,在 v2 交握失敗後的 v1 重試會跳過 Tor 代理直接連上對等節點,發送者的 IP 位址因此可能曝光。最可能的觸發情境是惡意節點故意中斷交握。在 31.1 推出前,使用者可關閉此功能、設定 -v2transport=0,或讓 IPv4/IPv6 對外連線全部走 Tor。
Bitcoin Core
Bitcoin Core 0.14.0 之後、29.0 之前的版本,驗證特製無效區塊時可能讀取已釋放的記憶體,導致節點當機。CVE-2024-52911 評為高風險,不過攻擊者必須在鏈頂付出有效的工作量證明,遠端執行程式碼的可能性也被認為不大。這個漏洞由 Cory Fields 通報,29.0 已納入修補。
Bitcoin Core
叢集記憶池在 Bitcoin Core 31.0 取代舊設計:祖先與後代限制改為每個叢集上限 64 筆交易、101 kB,CPFP carveout 也一併取消。記憶體至少 4096 MiB 的機器,-dbcache 預設提高到 1024 MiB;新增的 -privatebroadcast 選項則讓 sendrawtransaction 只透過 Tor 或 I2P 廣播。
Bitcoin Core
Bitcoin Core 28.4 修正未命名錢包的兩項錯誤:舊版錢包遷移(#34156),以及 createfromdump 失敗時會刪除 wallets 目錄(#34215)。chainparams 也移除了一個 DNS 種子(#33723)。
Bitcoin Core
對等節點傳送違反共識的交易,Bitcoin Core 29.3 不再予以懲處(#33050)。驗證流程新增逐輸入的 sighash midstate 快取,涵蓋 legacy、P2SH 與 segwit v0 腳本(#32473),偵測 witness stripping 也不必重跑 Script 檢查(#33105);礦工程式 addPackageTxs 的無號整數溢位則已排除(#33475)。
Bitcoin Core
未命名舊版錢包遷移失敗的問題,到 Bitcoin Core 30.2 已獲解決(#34156),createfromdump 處理這類錢包失敗時也不再刪除 wallets 目錄(#34215)。IPC 等待呼叫期間按 Ctrl-C 不會再卡住(#33511)。
Bitcoin Core
在罕見情況下,Bitcoin Core 30.0 或 30.1 遷移 wallet.dat 失敗時,可能刪光錢包目錄內所有檔案,資金因此面臨風險。開發者已下架這兩版的二進位檔,並請使用者在 30.2 推出前不要透過 GUI 或 RPC 遷移。觸發條件是預設、未命名的 wallet.dat 遷移或載入失敗,其他使用者不受影響。
Bitcoin Core
錢包在 Bitcoin Core 30.1 不再選用帶有祖先的未確認 TRUC 幣(#33528)。IPC 方面,選項不必再加 -m 參數(#33229),訊息記錄的額外負擔降低(#33517),執行中的 waitNext 呼叫也可以取消(#33676)。
Bitcoin Core
特製的非標準交易每筆可佔用 Bitcoin Core 節點數秒,發送方卻不會被斷線,攻擊者可藉此拖慢區塊傳播。CVE-2025-46598 評為低風險,由 Antoine Poinsot 通報,v30.0 透過縮短最壞情況的驗證時間來緩解。
Bitcoin Core
超過 1GB 的區塊可能讓 32 位元 Bitcoin Core 節點的大小檢查溢位,並在寫入磁碟時當機,但前提是以 compact block 形式傳送,受害者還得把 -maxmempool 設在 3GB 以上、內有 1GB 交易。Pieter Wuille 發現的 CVE-2025-46597 評為低風險,29.1 與 30.0 限制 32 位元系統的 -maxmempool 後問題解除。
Bitcoin Core