Signal
📡 Signal|Lightning Labs、Go の認証局対策で lnd など再ビルド版を公開
Go が10月19日に証明書検証部品を緊急修正。Lightning Labs は lnd・tapd・litd・btcd を Go 1.27.3 で作り直し、利用者に入れ替えを求めた。Go を更新しても動いているノードは直らない。

Lightning Labs の CTO、Olaoluwa Osuntokun 氏は10月22日、lnd・btcd・tapd・litd の利用者に、新しいリリース版への更新か、Go 1.27.3 での再ビルドを強く勧めると X で呼びかけた。理由は、Go 言語の証明書検証部品 crypto/x509 が10月19日の緊急修正で、特定の認証局の中間証明書を含む証明書の鎖を拒むようになったことにある。
Bitcoin の決済網 Lightning を動かすノードソフトの多くは Go で書かれ、Go の標準部品を 1 本の実行ファイルに焼き込んで配られる。サーバーの Go を新しくしても、動いているノードは古い検証部品のままだ。修正を受け取るには、ノードソフトそのものを入れ替える必要がある。
Go が10月19日に出した修正
Go チームは10月19日、Go 1.27.3 と Go 1.26.10 を公開した。どちらも中身は crypto/x509 の安全上の修正だけで、課題番号は CVE-2026-111943 (Go issue 82345) だ。
課題の説明によると、Go は「特定の認証局の運用に関する安全上の懸念」から、少数の中間証明書への信頼を止めた。証明書の鎖を検証する関数は、これらの中間証明書を含む鎖を結果から除くようになる。Go チームは「直ちに更新することを強く勧める」と書き、通常の定期リリースを待たない緊急扱い (URGENT track) で処理した。
Go の課題本文は、対象の認証局の名前を明かしていない。Osuntokun 氏の投稿は、これを eMudhra の認証局の侵害として紹介している。
4 つのソフトが同じ日に作り直された
Lightning Labs 側の対応は、10月22日の数時間にまとまっている。
- lnd v0.21.5-beta.rc1 と v0.20.6-beta.rc1 (10月22日・リリース候補版): 配布バイナリは Go 1.27.3 でビルド
- Taproot Assets (tapd) v0.8.7 (10月22日): CVE-2026-111943 への対応として Go 1.27.3 で再ビルド
- Lightning Terminal (litd) v0.17.8 (10月22日): 同梱するデーモンを含めて Go 1.27.3 で再ビルド
- btcd v0.27.0 (10月21日): 配布アーカイブは Go 1.27.3 でビルド
tapd の更新案内は、この修正の性質をはっきり書いている。「ホストの Go を更新しても、既存のバイナリは修正されない」。新しい配布バイナリを入れるか、v0.8.7 のタグから Go 1.27.3 で作り直すよう求めている。
注意点が 1 つある。lnd の 2 本はまだ正式版ではなく、リリース候補版 (rc1) だ。10月1日の v0.21.4-beta が、現時点の最新の正式版になる。Osuntokun 氏の投稿は、rc1 の配布バイナリへの更新か、手元での再ビルドのどちらかを勧めている。
認証局の信頼は、OS ではなく実行ファイルの中で変わった
ブラウザや OS で認証局の信頼を止める時は、信頼する証明書の一覧を配り直せば済むことが多い。今回の Go の修正は、検証の手順そのものに「この中間証明書を含む鎖は通さない」という判断を書き込んだ。そのため効き目は、Go 1.27.3 / 1.26.10 で作り直された実行ファイルにしか及ばない。
Lightning のノードは、利用者の資金を預かった状態で 24 時間動き続ける。ノードは外部の手数料見積もりサービスなど、HTTPS 越しの通信も持つ。信頼を失った認証局の中間証明書を通す検証器が残っていれば、そうした通信の相手を偽装されうる余地が残る。修正の中身は数行でも、配る単位が「1 本の実行ファイル」である以上、運用者がノードを入れ替えるまで穴は閉じない。
Go で書かれたソフトは Lightning に限らない。暗号資産の世界でも、Ethereum の実行クライアント Geth や Cosmos 系チェーンのノードなど、Go 製の基盤は多い。Lightning Labs が 3 日で 4 本を作り直したのは、このあと各プロジェクトが同じ判断を迫られることの先触れでもある。
次に見るもの
確認先は GitHub の lnd のリリース一覧で、v0.21.5-beta と v0.20.6-beta が rc の付かない正式版として出る日を見る。同時に、Go の課題 82345 と Go のリリース履歴のページに、対象の認証局の名前や中間証明書の詳細が追記されるかを見る。Go 製のノードを動かす運用者は、自分のバイナリが何の Go でビルドされたかを、ソフトのバージョン表示や配布元のリリースノートで確かめるのが最初の一手になる。
ことば
- 中間証明書 — Web の安全な通信で使う証明書は、ルート証明書から中間証明書を経てサイトの証明書へと鎖のようにつながる。中間証明書を発行する側の運用に問題があると、その下で発行された証明書すべてが疑わしくなる。
- lnd — Lightning Labs が開発する Lightning ノードソフト。Bitcoin の上で即時・少額の支払いを中継するノードを動かす実装の 1 つで、Go で書かれている。
- リリース候補版 (rc) — 正式版を出す前に、利用者に試してもらうための版。中身は正式版とほぼ同じことが多いが、最終確認の前の段階にあたる。
🔗 一次ソース
- Olaoluwa Osuntokun 氏 (Lightning Labs) の X 投稿 (10月22日・lnd/btcd/tapd/litd の更新か Go 1.27.3 での再ビルドを推奨)
Go issue 82345: crypto/x509 特定の認証局に関する安全上の懸念への対策 (CVE-2026-111943・URGENT track)GitHub
Go リリース履歴 (go1.27.3 / go1.26.10 は 2026-10-19 公開・crypto/x509 の安全上の修正)go.devlnd v0.21.5-beta.rc1 (10月22日・リリース候補版・Go 1.27.3 でビルド)GitHub
Taproot Assets v0.8.7 (10月22日・ホストの Go 更新では既存バイナリは直らないと明記)GitHub
Lightning Terminal v0.17.8 (10月22日・同梱デーモンを Go 1.27.3 で再ビルド)GitHub
btcd v0.27.0 (10月21日・配布アーカイブは Go 1.27.3 でビルド)GitHub