ノードはメッセージの受信時に大きなバッファの割り当てを強制される可能性があり、これを利用してOOMによりリモートでノードがクラッシュする可能性がありました。
この問題の重大度は中です。
詳細
制限が厳しくない場合、受信メッセージのサイズはシリアライズされたメッセージの最大サイズである32MiBに制限されます。 攻撃者は、ノードに接続毎にこの量のRAMを割り当てるよう強制することができ、OOMにつながる可能性があります。
PR #5843では、ペイロードを受信する前のP2Pメッセージのサイズが削減されました。 これにより、悪意のあるピアによって発生するピア毎の受信バッファのメモリサイズが削減されます。 PRでは、この数値が32MiBから2MiBに削減されましたが、その後、Segwit BIP144の変更の一環として4MBまで戻されました。
貢献
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 Bitcoin Core バージョン 0.10.1が修正と共にリリースされる
- 2015-06-25 開示の事前発表.
- 2015-07-07 開示が延期される.
- 2016-08-23 脆弱性のある最後のバージョンのBitcoin Core (0.10.x) がEOLになる
- 2024-07-03 公開