节点在接收消息时可能被强制分配大型缓冲区,这可以通过 OOM 被远程利用来使其崩溃。

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

详情

如果没有更严格的限制,接收消息的大小仅受 32 MiB 的最大序列化消息大小限制。攻击者可以强制节点为每个连接分配这么多的 RAM,这可能导致 OOM。

PR #5843 减少了接收有效负载之前 P2P 消息可以具有的尺寸。这减少了恶意节点可能导致的每个对等点接收缓冲区内存大小。PR 将数量从 32 MiB 减少到 2 MiB,后来作为 Segwit BIP144 更改的一部分又增加回 4 MB。

归属

由 bitcointalk 用户 Evil-Knievel 报告给 Greg Maxwell。由 Pieter Wuille 修复。

时间线

  • 2015-02-05 Evil-Knievel 通过 bitcointalk 私信向 Greg Maxwell 报告了此漏洞。
  • 2015-??-?? 为其注册了CVE-2015-3641
  • 2015-03-01 PR #5843 被打开以修复它。
  • 2015-03-06 PR #5843 合并。
  • 2015-03-09 该修复程序已移植到 0.10.1 版本。
  • 2015-04-27 比特币核心版本 0.10.1 发布 并包含修复程序。
  • 2015-06-25 公告已预先发布
  • 2015-07-07 公告已推迟
  • 2016-08-23 最后一个易受攻击的比特币核心版本 (0.10.x) 达到使用寿命终结 (EOL)。
  • 2024-07-03 公开披露。