Bitcoin Core于2026年11月10日公开高危漏洞CVE-2025-62861的技术细节:节点经历特定区块链重组后,交易内存池可能进入不一致状态,使矿工无法成功创建区块模板。受影响版本为28.0至28.2、29.0至29.1,修复已于2025年随30.0、29.2和28.3版本发布。

区块有效,不代表交易符合内存池策略

漏洞涉及TRUC交易,即BIP 431所述的版本3交易。Bitcoin Core对这类交易施加额外的转发拓扑限制:一笔TRUC交易最多只能有一个未确认祖先和一个未确认后代。这些约束用于管理内存池中交易的依赖关系。

关键区别在于,这属于内存池策略,而非共识规则。因此,一个有效区块可以包含不符合上述策略的结构,例如一笔TRUC父交易带有多个子交易。节点接受这样的区块,并不意味着它违反了比特币的区块有效性要求。

从v28.0开始,如果新提交的交易会让TRUC父交易出现第二个未确认子交易,“同级驱逐”逻辑会把原有子交易列为替换候选;当新交易支付的费用足够时,便按手续费替换规则将原有子交易移出内存池。

重组恢复路径为何留下失去输入的交易

区块链重组时,被断开区块中的交易需要重新加入内存池。Bitcoin Core在这一过程中使用bypass_limits=true,目的是忠实恢复此前已确认的交易,跳过内存池的反拒绝服务及拓扑策略限制。

问题在于,同级驱逐分支没有受这一参数约束。交易重新入池时,TRUC限制仍会运行,而重组恰好可能恢复出“区块允许、日常内存池策略不允许”的交易结构。

在这种情况下,同级驱逐可能移除一笔刚恢复的交易,却把依赖它的后代交易留在内存池。由此,池中部分交易所引用的前序输出已不再存在于相应交易集合中,内存池的依赖关系失去一致性。

直接影响是出块流程,边界在触发条件

这一状态的主要后果发生在区块模板创建环节:组装出的模板无法通过有效性检查,经历该类重组的节点因此无法继续生成区块。重启节点会重新加载内存池,使其恢复一致状态。

我们的判断是,这起漏洞的核心是重组恢复流程与日常交易准入策略之间的边界失效。已确认交易回到内存池时,若仍执行原本应跳过的替换逻辑,就可能破坏交易依赖关系。因此,不能仅凭单笔交易或原区块有效,就推定恢复后的内存池一定可用。

对矿工而言,直接风险是依赖受影响节点的区块模板生产被中断;从区块校验角度看,模板检查失败阻止了该错误状态直接转化为有效区块。影响需要受影响版本、重组及相应交易结构共同触发,不能据此推断每次重组都会造成停摆,也没有依据将其扩展为资金被盗或全网停止出块。

三个版本分支已修复,重启不能替代补丁

修复由PR #33504完成:将TRUC检查与bypass_limits参数关联,使重组重新加入交易时不再执行同级驱逐。它针对的是触发不一致的恢复路径,并未改变区块共识规则。

Niklas Goegge于2025年9月26日向Bitcoin Core安全邮件列表报告问题;Greg Sanders于9月29日提交修复,10月2日合并。补丁随后回移至相关分支,随30.0于10月10日、29.2于10月14日、28.3于10月17日发布。

最后仍包含易受影响版本的29.x分支于2026年10月27日结束维护,技术细节随后公开。对相关节点,核对运行版本及是否包含补丁,比观察当前能否正常生成模板更有意义:重启能够恢复当时的内存池一致性,但不会修复旧版本中的触发逻辑;只有纳入修复,才消除了这一已知问题的代码路径。