Bitcoin Core 近日被曝出历史上首个内存安全漏洞(CVE-2024-52911)。该漏洞位于验证引擎中,允许矿工通过挖掘特制区块远程崩溃其他用户的全节点,甚至远程执行代码。据业界估算,约43% 的 Bitcoin Core 节点仍在运行含有此漏洞的旧版软件。
攻击机制:矿工需消耗大量算力
漏洞影响 Bitcoin Core 0.14.1 至 28.4 版本,由开发者 Cory Fields 于 2024 年 11 月发现。在区块验证过程中,Bitcoin Core 会预先计算并缓存交易输入数据,然后将脚本验证工作分派给后台线程。若遭受 CVE-2024-52911 攻击,节点可能在内存中已释放的数据被另一程序清除后,仍持续读取已缓存的内存内容,导致 Use-After-Free 漏洞被利用。尽管攻击原理不算复杂,但发动攻击的成本极高——攻击者必须是矿工,且需将大量算力��入挖掘无法获得区块奖励的特殊无效区块,这意味着每分钟都在损失可观的电费和机会成本。
Bitcoin Core 开发者:首次内存安全性问题
Bitcoin Core 开发者在公告中承认远程代码执行(RCE)理论上可行,但未提供具体发生案例。官方强调,由于攻击成本极高、漏洞存在时间较长,加上区块数据本身的限制,历史上不太可能已有矿工大规模利用此漏洞。Bitcoin Core 开发者 Niklas Gögge 在 X 平台上表示:“我们发布 Bitcoin Core 安全公告约两年来,(就我所知)刚刚揭露了第一个内存安全性问题:验证引擎中的 Use-After-Free。感谢 DCI 的 Cory Fields 发现并回报。” 由于节点升级属于自愿行为、软件更新非自动进行,相当一部分网络节点仍未升级至 v29 或以上版本。
负责任披露:低调修复历时一年半
Cory Fields 早在 2024 年 11 月私下检测并报告此漏洞。四天后,Bitcoin Core 开发者 Pieter Wuille 以 PR 31112 提交修复方案,标题仅写着“Improve parallel script validation error debug logging”,刻意以平淡的维护性更新包装,避免打草惊蛇。该 PR 在 2024 年 12 月获得技术共识并合并,修复程序于 2025 年 4 月随 Bitcoin Core 29.0 版正式发布。最后一个��在漏洞的版本线 28.x 已于 2026 年 4 月 19 日终止支持(EOL)。在节点运营者有充分时间升级后,Bitcoin Core 终于在本周公开披露漏洞细节。值得注意的是,Bitcoin 的共识规则未受此漏洞修复影响。该漏洞存在于节点软件的内存检查机制中,修复方案已包含在 Bitcoin Core v29 及后续版本。

