比特币核心维护着一个无限的被禁止 IP 地址列表,并在其上执行了二次运算。这可能导致 OOM 崩溃和 CPU Dos。

此问题被认为是严重性。

详情

比特币核心维护着一个被禁止 IP 地址列表。此列表没有边界,并且可能被攻击者操纵。在考虑 IPV6 时,向此列表添加新条目对于攻击者来说特别便宜。此外,在接收 GETADDR 消息时,比特币核心会扫描整个禁用列表以返回每个地址(最多 2500 个)。

归属

Calin Culianu 首次负责任地披露了它。Calin 后来在 PR 评论 中公开披露了此错误。

在同一天,来自 Bitcoin ABC 的 Jason Cox 向比特币核心项目发送电子邮件,分享了他们也收到的这份报告。

时间线

  • 2020-06-08 Calin Culianu 私下向比特币核心项目报告了此错误
  • 2020-06-08 Jason Cox 私下分享了发送给 Bitcoin ABC 的(相同)报告,并将其与比特币核心共享
  • 2020-06-08 Calin Culianu 在引入二次行为的原始 PR 上公开披露了此漏洞
  • 2020-06-09 Pieter Wuille 打开 PR #19219,该 PR 修复了无边界内存使用和二次行为
  • 2020-06-16 Luke Dashjr 在其请求后为该漏洞分配了 CVE-2020-14198
  • 2020-07-07 Pieter 的 PR 已合并
  • 2020-08-01 比特币核心 0.20.1 发布,其中包含此修复
  • 2021-01-14 比特币核心 0.21.0 发布,其中包含此修复
  • 2022-04-25 最后一个易受攻击的比特币核心版本 (0.20.0) 达到使用寿命终结
  • 2024-07-03 (正式) 公开披露