Bitcoin Coreは、禁止されたIPアドレスの無制限のリストを保持し、それに対して2次関数的な操作を行います。これによりOOMクラッシュやCPU DoSが発生する可能性がありました。

この問題の重大度はです。

詳細

Bitcoin Coreは禁止されたIPアドレスのリストを保持していました。このリストには制限がなく、 敵対者によって操作される可能性がありました。このリストに新しいエントリーを追加することは、 IPV6を考慮すると、攻撃者にとって安価でした。さらに、GETADDRメッセージを受信すると、 Bitcoin Coreは返されたすべてのアドレス(最大2500)に対して禁止リスト全体をスキャンします。

貢献

Calin Culianuが最初に責任を持って開示し、Calin laterがその後PRのコメントでこのバグを公表しました。

同じ日、Bitcoin ABCのJason Coxは、Bitcoin Coreプロジェクトにメールを送信し、彼らも受け取った同じレポートを共有しました。

タイムライン

  • 2020-06-08 Calin CulianuがバグをBitcoin Coreプロジェクトに非公開で報告
  • 2020-06-08 Jason Coxは、Bitcoin ABCに送られた(同じ)レポートをBitcoin Coreと非公開で共有
  • 2020-06-08 Calin Culianuは、2次関数的な動作を導入した元のPRの脆弱性を公表
  • 2020-06-09 Pieter Wuilleが、無制限のメモリ使用と2次関数的な動作の両方を修正するPR #19219を公開
  • 2020-06-16 Luke Dashjrの要求により、この脆弱性にCVE-2020-14198が割り当てられる
  • 2020-07-07 PieterのPRがマージされる
  • 2020-08-01 Bitcoin Core 0.20.1が修正と共にリリースされる
  • 2021-01-14 Bitcoin Core 0.21.0が修正と共にリリースされる
  • 2022-04-25 脆弱性のある最後のバージョンのBitcoin Core (0.20.0) がEOLになる
  • 2024-07-03 (公式に)公表