miniupnpcで、重大なデータ漏洩を引き起こすバッファオーバーフローが発見されました。 当時公開されたばかりのCVE-2015-6031と組み合わせると、miniupnpcでRCE(リモートコード実行)が可能になり、 Bitcoin CoreでのRCEにつながる可能性がありました。これは2016年2月にリリースされた Bitcoin Core 0.12で修正されました。

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

詳細

2015年9月に開示されたCVE-2015-6031により、 悪意あるUPnPサーバーが起動時にローカルネットワーク上のBitcoin Coreプロセスをリモートでクラッシュさせることが可能になりました。 詳細についてはこちらをご覧ください。 この修正は、Bitcoin Coreに取り込まれ、 2015年10月にリリースされたバージョン0.11.1でリリースされました。 その後、UPnPはデフォルトでオフになりました

CVE-2015-6031でのバッファオーバーフローが発見され、リモートクラッシュを可能にすることに加えて、 被害者のマシンでリモートコード実行が可能でした。この可能性の調査中に、 Wladimir J. Van Der Laanは、miniupnpcで重大なデータ漏洩を招く別のバッファーオーバーフローを発見しました。 これは、Wladimirによってminiupnpcコミット 4c90b87ce3d2517097880279e8c3daa7731100e6で修正されました。この修正は、 Bitcoin Coreに取り込まれ、バージョン0.12の一部としてリリースされました。

このデータ漏洩は、(ウォレットの秘密鍵などの)秘密情報を直接開示するものではありませんでした。 しかし、別のスタックオーバーフロー(CVE-2015-6031で開示されたものなど)と組み合わせることで、 リモートコード実行を引き起こすことが可能でした。Wladimirは、 これをUbuntuのminiupnpcバージョン1.6-preciseで実証しました。しかし、 このエクスプロイトで使用された特定のアプローチは、Bitcoin Coreには直接移植できませんでした。

貢献

CVE-2015-0035を特定したAleksandar Nikolicとその影響を調査し、2つめのバッファーオーバーフローを発見した Wladimir J. Van Der Laanに感謝します。

タイムライン

  • 2015-09-15 CVE-2015-0035が修正され開示される
  • 2015-10-09 PR #6789がBitcoin Coreにマージされる
  • 2015-10-14 Wladimirによる2つめのバッファーオーバーフローを利用したリモートコード実行がUbuntuセキュリティとBitcoin開発者に開示される
  • 2015-10-15 Bitcoin Core 0.11.1がリリースされる
  • 2015-10-26 2つめのバッファーオーバーフローの修正がminiupnpcマージされる
  • 2015-12-18 修正がBitcoin Coreに取り込まれる
  • 2016-02-23 Bitcoin Core バージョン 0.12 がリリースされる.
  • 2017-03-08 脆弱性のある最後のバージョンのBitcoin Core (0.11.x) がEOLになる
  • 2024-07-03 公開