披露 32 位元系統上一個錯誤的細節,該錯誤在罕見邊緣情況下可能導致節點在接收到病理區塊時崩潰。此錯誤將極難利用。修復程式於 2025 年 10 月 10 日在 Bitcoin Core v30.0 中發布。

此問題被認為是嚴重性。

細節

在將區塊寫入磁碟之前,Bitcoin Core 會檢查其大小是否在正常範圍內。對於超過 1GB 的區塊,此檢查將在 32 位元系統上溢位,並在將其寫入磁碟時使節點崩潰。這樣的區塊無法使用 BLOCK 訊息傳送,但理論上如果受害者節點具有非預設的大記憶池,該記憶池已經包含 1GB 的交易,則可以作為緊湊區塊傳送。這需要受害者將其 -maxmempool 選項設定為大於 3GB 的值,而 32 位元系統最多可能有 4GiB 的記憶體。

此問題透過限制 32 位元系統上 -maxmempool 設定的最大值來間接防止。

歸屬

Pieter Wuille 發現此錯誤並負責任地披露它。

Antoine Poinsot 提出並實作了隱蔽緩解措施。

時間表

  • 2025-04-24 - Pieter Wuille 報告該問題
  • 2025-05-16 - Antoine Poinsot 開啟 PR #32530,包含隱蔽修復程式
  • 2025-06-26 - PR #32530 合併到 master
  • 2025-09-04 - 版本 29.1 發布,包含修復程式
  • 2025-10-10 - 版本 30.0 發布,包含修復程式
  • 2025-10-24 - 公開披露