LDK v0.2.6、資金窃取とノード再起動の脆弱性を修正
重要ポイント
- •スプライス関連の脆弱性により、ノードが資金を拠出した際、悪意あるピアが過剰な手数料配分を自身の出力先へ向けられる可能性があった。
- •悪意ある支払いのシーケンスにより、再起動後にノードのChannelManagerを読み込めなくなり、可用性のリスクが生じる可能性があった。
- •未承認かつ資金を保有していないチャネルに関する別のクラッシュによっても、復旧時にChannelManagerが失敗する可能性があった。
- •LDK v0.2.6は、ChannelManagerのシリアライズ中のストリーム書き込み失敗によって生じる、誤ったスプライス関連イベントを修正する。
- •LDKベースのウォレットやアプリケーションのユーザーは提供元の更新を確認し、開発者は運用中のLDKバージョンと互換性要件を確認すべきだ。

Lightning Development Kit(LDK)は、Bitcoin Lightning Networkのウォレットやアプリケーション構築に使われるソフトウェアツールキットで、バージョン0.2.6をリリースした。今回の更新では、攻撃者がノードの資金を少額支出したり、ノードの再起動を妨げたりする可能性があるバグに対応している。
LDK v0.2.6が修正した問題
LDKは、Bitcoin上に構築された、より高速で低コストな決済レイヤーであるLightning Network向けのウォレットやアプリケーションを開発者が構築するために使われる。バージョン0.2.6は2026年9月9日、「The More You Dig」というタイトルでリリースされた。公式リリースノートによると、今回の更新には、スプライス手数料インフレの欠陥、悪意ある支払いによる再起動の脆弱性、別のクラッシュ関連の再起動障害、スプライス処理中に生成される不正なイベントに対する修正が含まれている。
リリースは潜在的なリスクについて説明している。確認された損失は報告されておらず、悪用されたアプリケーションも特定されていない。ただし、そのような報告がないことは、悪用が一度も発生していないことを示すものではない。提供された情報からは、どの旧バージョンが影響を受けるのか、影響を受けるバージョンの完全な範囲、バックポートが利用可能かどうかも明らかになっていない。リスクにさらされる資金額、影響を受けるノード数、悪用されたアプリケーション名についても示されていない。
資金窃取とノード再起動のリスク
最初の問題は、「スプライス」に関する手数料インフレの脆弱性だ。スプライスとは、オープン状態のLightningチャネルを閉じずに、資金を追加したり取り除いたりする仕組みである。悪意ある取引相手は、ノードがスプライスを開始した際に、そのノードの資金を少額支出できる可能性があった。
今回の修正により、ノードがスプライスに資金を拠出する際、悪意あるピアが過剰な手数料配分を強制することを防げる。リリースノートが参照するissue #4905によると、修正前はその過剰分がピアの出力先に割り当てられる可能性があった。
2つ目の問題は、資金窃取の脆弱性ではなく、運用上のリスクである。issue #4982で追跡されている決済サービス拒否(DoS)バグにより、ノードが再起動できなくなる可能性があった。この問題は、ノードが同じpayment_hashを持つ別の有効な支払いを転送した直後に、HTLCと呼ばれる偽の支払い要求を受信した場合に発生する可能性がある。その一連の処理により、ノードの中核的な状態トラッカーであるChannelManagerを、再起動時に読み込めなくなる可能性があった。運用者にとってこれは可用性の問題であり、ChannelManagerを再読み込みできないノードは、再起動後に通常の動作へ復帰できない。
リリースでは、Erick Cestariがこの再起動問題を報告したと記載されている。
LDK v0.2.6は、別の再起動障害にも対応している。ChainMonitorが、承認されておらず、資金も保有していなかったチャネルを閉じた直後にクラッシュすると、ChannelManagerを読み込めなくなる可能性があった。リリースノートはissue #4983を参照し、このクラッシュ関連のバグを悪意ある支払いによる攻撃とは区別している。
さらに今回の更新では、ChannelManagerのシリアライズ中にストリームへの書き込みが失敗した際、まだアクティブなスプライスについて、誤ったSpliceNegotiationFailedおよびDiscardFundingイベントが生成される問題を防ぐ。この修正はissue #4902に関連している。
LDKユーザーが確認すべき事項
Lightningの利用者の大半は、LDKが使用中のウォレットやアプリケーションに組み込まれているため、LDKを直接操作することはない。開発チームは、修正がエンドユーザーに届く前に、LDK v0.2.6をソフトウェアへ組み込む必要があると、CryptoSlateは報じている。
ノード運用者とアプリケーション開発者は、まず公式リリースノートやセキュリティガイダンスを確認し、運用中のソフトウェアがLDKを使用しているか、またどのバージョンを含んでいるかを確認すべきだ。変更を行う前に、アプリケーションの互換性とアップグレード手順も確認する必要がある。これらは編集部による提案であり、LDKメンテナーが発行したアップグレード手順ではない。
ウォレットやアプリケーションがLDKに依存している場合、ユーザーは提供元の更新を確認し、更新版が提供された時点で適用すべきだ。
この記事は情報提供のみを目的としており、金融または投資に関する助言を構成するものではない。暗号資産およびデジタル資産市場には大きなリスクが伴う。意思決定を行う前に、必ず自身で調査を行うこと。
出典:CoinLineup