在比特币核心 0.12.0 版到比特币核心 0.15.0 版之间,节点可能会受到最小难度区块头的垃圾邮件攻击,这可能会被利用导致节点因内存不足而崩溃。

此问题被认为是**中等**严重性。

详情

在引入区块头预同步之前,节点完全依赖于检查点来避免受到低难度区块头的垃圾邮件攻击。

在比特币核心 0.12.0 版中,对在最后一个检查点高度之前分叉的区块头的检查被移动到将区块头存储到mapBlockIndex之后。这使得攻击者可以通过发送其父区块为创世区块(只需要难度为 1 即可创建)的区块头垃圾邮件来无限增长该映射,因为此类区块绕过了检查点逻辑。

归属

感谢 Cory Fields 发现并负责任地披露了此漏洞。

时间线

  • 2017-08-08 Cory Fields 私下报告了此漏洞
  • 2017-08-11 Pieter Wuille 开启PR #11028修复此问题
  • 2017-08-14 PR #11028 合并
  • 2017-09-14 比特币核心 0.15.0 版发布,包含修复程序
  • 2018-10-03 比特币核心最后一个易受攻击的版本 (0.14.3) 终止生命周期
  • 2024-07-03 公开披露。