Bitcoin Core 27.2リリース
自己接続検出の競合状態がBitcoin Core 27.2でふさがれた(#30394)。FillPSBT呼び出しが誤ってcomplete=trueを返す問題も修正(#30357)。ロードブロックスレッドとスケジューラーのシャットダウン順序を変更し(#30435)、miniupnpc 2.2.8とGCC 15でビルドできるようになった。
Bitcoin Core
ビットコインのソフトウェアをつくる人々によるリリース、セキュリティ情報、プロトコルの取り組み。
121件の記事
自己接続検出の競合状態がBitcoin Core 27.2でふさがれた(#30394)。FillPSBT呼び出しが誤ってcomplete=trueを返す問題も修正(#30357)。ロードブロックスレッドとスケジューラーのシャットダウン順序を変更し(#30435)、miniupnpc 2.2.8とGCC 15でビルドできるようになった。
Bitcoin Core
同じブロックに対するblocktxnメッセージを再度送るだけで、v25.0より前のBitcoin Coreノードをリモートからクラッシュさせられた。FillBlockの実行は1回だけとするアサーションに引っかかるためだ。short-idの衝突は不要で、ブロックのマークルルートにないトランザクションを含めれば同じ経路に到達する。深刻度HighのCVE-2024-35202はNiklas Gögge氏が発見し修正した。
Bitcoin Core
Bitcoin Core 28.0にTestnet4(BIP94)が加わった。1親1子のペアに限ったパッケージリレー、BIP 431に基づくTRUCトランザクションの標準化、新しい出力タイプPay To Anchorも入る。-mempoolfullrbfの既定値は1になり、27.0で非推奨だったlibbitcoinconsensusは削除された。
Bitcoin Core
ローカルネットワーク上のUPnPデバイスになりすました攻撃者が、肥大したM-SEARCH応答を送り続けてBitcoin Coreノードのメモリを枯渇させることができた。ライブラリは既定で無効のため、影響は-miniupnpを付けて起動したノードのみ。深刻度Lowのこのバグはv22.0で修正された。
Bitcoin Core
Bitcoin Core 26.2の署名処理はTapMiniscriptが健全(sane)であることを前提にしなくなった(#29853)。getnetworkhashpsは無効なパラメータでエラーを返し(#28554)、setmocktimeには上限が設けられた(#29869)。miniupnpc 2.2.8でもビルドできる。
Bitcoin Core
GETDATAへの応答を控え、偽の通知を大量に送って50,000エントリのg_already_asked_forマップからトランザクションを追い出す。そのうえで再通知を繰り返せば、被害ノードが他のピアからそのトランザクションを要求するのを止められた。John Newbery氏が開示したバグで深刻度はMedium。Pieter Wuille氏の#19988がBitcoin Core 0.21.0で修正した。
Bitcoin Core
無効だが検証コストの高いオーファントランザクションを細工すると、ノードを数時間止められた。トランザクションを新たに受け入れるたびに、計算量が2乗で増えるオーファンキャッシュの探索が走るためだ。Pieter Wuille氏の#15644は、一致が見つかった時点で作業を打ち切り、新しいメッセージを処理する。深刻度Highとされたこの問題の修正は、Bitcoin Core 0.18.0で利用者に届いた。
Bitcoin Core
不正なBIP72決済リンクを開くとBitcoin-Qtがクラッシュする恐れがあった。rパラメータで巨大なファイルを指定でき、バックグラウンドで静かにダウンロードが進む間、アプリがそのメモリを確保しようとするためだ。深刻度Mediumのこのバグは、BIP70サポートを削除した#17165(0.20.0に収録)とともに消えた。
Bitcoin Core
ジェネシスブロックの直上に作るヘッダーは難易度1で足り、Bitcoin Core 0.12.0から0.15.0までのチェックポイントロジックをすり抜けた。スパムを送る側はmapBlockIndexを際限なく増やせ、ノードをメモリ不足でクラッシュさせる可能性もあった。深刻度Mediumのこのバグは2017年にCory Fields氏が報告し、#11028でふさがれた。
Bitcoin Core
Bitcoin Core 0.10.1より前は受信メッセージが最大32 MiBに達し得たため、攻撃者は接続ごとにそれだけのRAMを確保させ、ノードをクラッシュさせる可能性があった。BitcointalkユーザーのEvil-Knievel氏が報告。#5843で上限を2 MiBに下げ、のちにSegWit向けに4 MBへ引き上げられた。2015年に予告した開示は延期され、詳細が出たのは2024年だった。
Bitcoin Core
miniupnpcにある2つ目のバッファーオーバーフローをWladimir J. Van Der Laan氏が発見した。データが漏えいし、CVE-2015-6031と組み合わせるとリモートコード実行に至る。同氏はUbuntuのminiupnpc 1.6-preciseで実証したが、このエクスプロイトはBitcoin Coreにそのままは移植できなかった。修正はバージョン0.12(2016年2月)に入った。
Bitcoin Core
IPv6を使えばBitcoin Coreの無制限のBANリストを安価に肥大化でき、GETADDRメッセージのたびに、返す最大2500件のアドレスごとにリストの走査が発生した。深刻度Highのメモリクラッシュとリソース枯渇はどちらも#19219で修正され、0.20.1と0.21.0に含まれる。
Bitcoin Core
Bitcoin Core 27.1はバグ修正が中心だ。GUIでは未署名トランザクションの手数料バンプが直り、プロキシIP欄にポートを入力できなくなった。GetAddedNodeInfo()はaddnodeのCJDNSピアを検出する(#30085)。署名時のTapMiniscript処理も変わった(#29853)。
Bitcoin Core
BIP324のv2トランスポートがBitcoin Core 27.0で既定で有効になった。新しいアルゴリズムCoinGrinderは手数料率30 sat/vB以上で最も軽い入力の組み合わせを探す。コンセンサスコードはネットワーク調整時刻をやめてシステム時刻を使うため、運用者にとって時計の正確さが一段と重要になる。libbitcoinconsensusは非推奨となり、v28で削除予定。
Bitcoin Core
Bitcoin Core 25.2のノードは改変ブロックを処理しなくなる(#29412)。getrawtransactionのセグメンテーション違反(#29003)、WalletBatch::EraseRecordsのuse-after-free(#29176)、「Mask values」を選ぶとGUIが落ちる問題も修正した。
Bitcoin Core
I2PセッションでECIES-X25519とElGamalの両暗号を使うようになった(Bitcoin Core 26.1、#29200)。メンプール読み込み時には進捗もログに出る。修正点には、改変ブロックの処理拒否(#29412)や、SFFO有効時にウォレットがBnBコイン選択を使わないようにする変更(#28994)がある。
Bitcoin Core
実験的なBIP324 v2トランスポートがBitcoin Core 26.0で初登場した。既定では無効で、-v2transportで有効にする。新しいloadtxoutset RPCはassumeutxoスナップショットを読み込み、数分で使えるノードを用意できる。元のchainstateの検証はバックグラウンドで続く。submitpackageは生トランザクションをパッケージとしてメンプールに送る。
Bitcoin Core
古くなった手数料推定値をBitcoin Core 24.2は返さなくなった(#27622)。無効なbech32アドレスに対するRPCの扱いも修正された(#27727)。その他の変更はほとんどがビルドシステムとCI関連で、Xcode 15リンカーでmacOS版Qtパッケージをビルドする際の修正(#28543)もある。
Bitcoin Core
並列コンパクトブロックダウンロードがBitcoin Core 25.1に入った(#27626)。他の修正は、/deploymentinfoでのRESTクラッシュ(#27853)、リモートクライアント切断後のサーバーシャットダウン(#28551)、無効なスクリプトを拒否するようになったウォレット移行(#28125)。
Bitcoin Core
-blockfilterindex=1でBIP158コンパクトブロックフィルターを利用できる場合、ディスクリプタウォレットの再スキャンがBitcoin Core 25.0で速くなった。これらのフィルターを検索する新しいRPC scanblocksも追加。リレーポリシーは非ウィットネス65バイト以上のトランザクションを受け付ける。-blocksonly時のメンプールの最大メモリは300MBから5MBへ減る。
Bitcoin Core