Core Lightningのアップグレード後もノードがクラッシュし続ける可能性 ― 保存されたトリガーを削除するまで
重要ポイント
- •この脆弱性はCore Lightningのv25.02からv26.04までのバージョンに影響し、研究者Nishant Bansal氏により10月24日に公開されました。
- •同一のノードIDを両エンドポイントとして指定した細工済みチャネルアナウンスは受け入れられてgossip_storeに書き込まれ、ルーティンググラフがそのノードを二重に挿入しようとするため、再起動のたびにノードがクラッシュします。
- •予防的な修正は4月24日にマージされ、4月25日のリリースv26.04.1に出荷されましたが、10月の公開でようやく注目されました。
- •パッチは着信アナウンスのみを検証し、起動時には保存済みレコードが読み込まれるため、運用者はクラッシュするノードを復旧させるためにgossip_storeから悪意あるエントリを手動で削除する必要があります。
- •オフラインのノードは失効したチャネル状態や期限付き支払い請求のブロックチェーン監視ができないため、クラッシュの長期化は運用者の資金を危険にさらす可能性があります。

Core Lightningのアップグレード後もノードがクラッシュし続ける可能性 ― 保存されたトリガーを削除するまで
BitcoinのLightning決済ネットワーク用ソフトウェア「Core Lightning」で公開された脆弱性により、クラッシュの原因となった悪意あるアナウンスがディスク上に保存され続けるため、アップグレード後もノードが再起動のたびにクラッシュし続ける可能性があります。
研究者のNishant Bansal氏は10月24日にこの問題を公開し、v25.02からv26.04までのバージョンが影響を受けると特定しました。アナウンスが一度保存されると、再起動のたびに同じトリガーが再読み込みされ、Bansal氏によると、ノードを復旧させるには運用者が問題のレコードを手動で削除する必要があります。
Bitcoinの技術動向を追う技術ニュースレター「Bitcoin Optech」は10月30日にこの問題を取り上げましたが、予防的なパッチは数か月前から存在していました。Core Lightningは4月24日にプルリクエスト#9082をマージし、4月25日にリリースv26.04.1として修正を出荷しました。つまり10月の公開は、予防的な修正が4月から入手可能だった脆弱性を説明するものです。
パッチが保存済みトリガーを解除できない理由
チャネルアナウンスは、Lightningのルーティンググラフにおける接続情報をノードに伝えます。支払いはこれらの記録された接続を経由して行われるため、すべてのルーティングノードは資金を移動させるために正確なグラフのコピーに依存しています。今回のケースでは、細工されたアナウンスが、それまで未知だった同一のノードを両エンドポイントとして指定していました。脆弱なソフトウェアはこれを受け入れ、ディスク上のgossip_storeに書き込んだ後、ルーティンググラフに読み込みました。
その後、グラフはそのノードを二重に挿入しようとしました。重複に対する保護機構が、これらのアナウンスを処理するコンポーネントであるgossipdを異常終了させ、Core Lightningはその障害をノード全体にとって致命的なものとして扱いました。
パッチは、アナウンスを受け入れる前にエンドポイントの順序を検査します。最初のノードIDが2番目より厳密に小さいことを要求することで、同一のIDも拒否され、不正な入力がそもそも受け入れ・保存されるのを防ぎます。
ただし、この検証は着信するアナウンスにのみ適用されます。起動時にはgossip_storeに既に存在するレコードが引き続き読み込まれ、アップグレードしてもクラッシュ前に保存された悪意あるレコードは削除されません。そのため、Bansal氏の復旧要件は、gossip_storeから悪意あるレコードを手動で削除することになります。
クリーンアップだけでは、脆弱な環境はさらなるクラッシュにさらされたままです。公開情報によれば、攻撃者が管理するfunding output(チャネルを開設したオンチェーン出力)が未使用のままである間、攻撃者は同じアナウンスを再送できます。
リレー経由の暴露、アップグレードガイダンス、ダウンタイムリスク
Bitcoin Optechによると、v25.02より前のCore Lightningリリースは、自身はクラッシュせずにこうしたアナウンスを受け入れ・中継できました。そのため攻撃者は、脆弱なノードすべてに直接接続する必要はなく、中継されたアナウンスは各ノードのピアに転送され、不正なレコードをネットワークの奥深くまで運ぶことができます。
今アップグレードを選択する運用者にとって、v26.04.1はこの欠陥の修正を含む最初のリリースです。11月2日時点で、プロジェクトの最新リリースは10月7日発行のv26.06.9であり、メンテナーはそのインストールを強く推奨しています。
ダウンタイムは、サービス利用不可を超える支払い監視リスクをもたらします。Lightningでは、チャネルルールの執行はノード運用者の責任です。Bansal氏は、オフラインのノードは失効したチャネル状態や、期限切れ前に申請しなければならない期限付き支払い請求のチェーン監視ができないと警告しています。これらのイベントを見逃すと、資金が危険にさらされる可能性があります。
オリジナル報道: CryptoSlate