比特币核心(Bitcoin Core)开发者披露了一处高严重性漏洞,该漏洞可能允许矿工远程让部分比特币节点崩溃。
摘要
该问题被归档为 CVE-2024-52911,影响比特币核心在 0.14.0 之后、29.0 之前的版本。该漏洞已在 2025 年 4 月发布的比特币核心 29.0 中修复。
比特币核心在 2026 年 5 月 5 日公开该问题,此前最终仍然受影响的 0.28.x 发行分支在 2025 年 4 月 19 日到达生命周期终点。
该问题涉及比特币核心在区块验证期间的脚本解释器。比特币核心表示,一个经过特殊构造的区块可能导致节点在相关数据已被释放之后仍访问内存。
在验证过程中,比特币核心会预先计算交易输入数据,并将脚本检查发送到后台线程。在某些情况下,一个无效区块可能销毁缓存数据,而另一条线程仍在尝试读取它。
比特币核心表示,这可能使攻击者在拥有足够工作量证明的情况下让受害节点崩溃。它还表示,“崩溃”可能支持远程代码执行,尽管由于区块数据的限制,这种结果“不太可能”。
该攻击并不容易实施。矿工需要生成一个经过特殊构造的区块,并携带足够的工作量证明以达到链的当前顶点(chain tip)。
这使攻击成本很高,因为这样的区块会无效。它无法获得正常区块奖励,迫使攻击者在不收取通常挖矿收益的情况下消耗算力(hashpower)。
比特币核心没有表示该漏洞已在真实攻击中被使用。该公告聚焦于漏洞本身、修复方式以及披露时间线。
该漏洞并未改变比特币的共识规则。它与比特币核心软件中的内存处理有关,而不是定义有效比特币交易或区块的规则。
MIT 数字货币计划(MIT Digital Currency Initiative)的 Cory Fields 在 2024 年 11 月 2 日私下报告了该漏洞。比特币核心表示,该报告包含了概念验证(proof of concept)以及降低风险的拟议方案。
Pieter Wuille 在四天后通过 PR 31112 推出了隐蔽的修复。该拉取请求(pull request)在 2024 年 12 月 3 日合并,早于比特币核心 29.0 于 2025 年 4 月发布并随版本带来修复。
该公告遵循比特币核心对高严重性漏洞的披露政策。其政策规定:高严重性问题应在最后一个受影响的发行版本进入生命周期终点之后才披露。
此外,使用比特币核心 29.0 之前版本的节点运营者仍然面临旧漏洞。比特币核心不会自动更新,因此用户必须手动安装较新的版本。
一份关于区块链去中心化风险的过往报告引用了研究:在 2021 年 6 月,21% 的比特币节点运行的是过时的比特币核心软件。该背景说明了为什么更老的客户端版本即使在修复发布很久之后仍可能构成安全隐患。
相关快讯