OWN NEWS GATHER
← 戻る
The Hacker News

Go言語が緊急セキュリティアップデートを公開、非公開の懸念により8つの中間CA鍵を遮断

要点

  • Go言語開発チームが2026年10月20日、深刻なセキュリティ懸念を理由に「Go 1.27.3」および「Go 1.26.10」を緊急公開した。

  • 特定の中間認証局(CA)に属する8つの公開鍵がブロック対象となり、該当鍵を経由する接続が遮断される。

  • 公式発表で認証局名は伏せられているが、公開鍵ハッシュの照合からインドeMudhraの中間鍵であることが判明した。

  • フィルターの無効化設定は存在せず、影響を受ける通信を行うGoプログラムは再ビルドが必要となる。

  • Go言語の開発チームは2026年10月20日、セキュリティポリシーで最高度の警戒を示す「URGENT」トラックを適用し、マイナーバージョン「Go 1.27.3」および「Go 1.26.10」を緊急リリースした。運用上の具体的なセキュリティ懸念を理由に、ある認証局の8つの中間鍵を拒否する変更が加えられており、開発チームは利用者に対し即時アップグレードを強く求めている。

最高度「URGENT」枠での緊急リリース

今回の更新は、Goのセキュリティポリシーにおいて「エコシステムの健全性への脅威」や「深刻な被害を伴う活発な悪用」にのみ適用される「URGENT」トラック(最も深刻度が高い問題に適用される対応区分)で処理された。同ポリシーで「近年適用された例はない」とされている極めて重い措置だが、今回どちらの条件に該当したのかについてGoチームは公表していない。

また、10月8日に実施された直近のセキュリティ更新時とは異なり、事前の予告案内を行わずにパッチが配信された。Goチームが公開したアナウンスにおける説明は、該当する鍵の運用に関して「具体的なセキュリティ上の懸念がある」という1文のみにとどまり、鍵を保有する認証局(CA:電子証明書を発行・管理する信頼機関)の名称も公式には伏せられている。

ブロック対象の特定とMozillaの先行対応

Goチームが公開したコミットには、対象となる8つの鍵のSHA-256ハッシュ値のみが記録されていた。しかし、Goの課題管理システム(GitHub Issue)において、あるユーザーが公開証明書レコードとハッシュ値を照合したところ、すべてインドの認証局eMudhraの中間認証局(中間CA:上位のルート認証局から委託を受けて個別の証明書を発行する機関)の鍵であることが判明した。

照合結果によると、8つのうち6つはウェブ通信用のTLS中間証明書であり、ドメイン認証(DV)、組織認証(OV)、実在確認レベルの高いEVの各2系統(オランダ法人向けと米国法人向け)で構成されている。残る2つは、ソフトウェアの正当性を証明するコード署名用の中間鍵(OV CS)の2系統であった。

このGoの対応に先立つ2日前の10月17日、MozillaもウェブブラウザFirefoxの証明書ブロックリスト「OneCRL」に対し、eMudhraのルート「emSign Root TLS CA - G3」が発行した6つの中間証明書を追加していた。この追加に関わるMozillaのバグ追跡レコードは非公開とされており、MozillaとGoの双方が、今回の遮断に至った具体的な理由を明かしていない。なお、Google Chrome、Apple、Microsoftなどの他プラットフォームが同様の対応をとったかは確認されていない。

公開鍵ハッシュによる照合と無効化設定の不在

新バージョンにおける検証処理は、証明書データそのものではなく公開鍵のハッシュ値を照合する。これにより、別の認証局からクロス署名(異なるルート認証局から署名を受けて複数の信頼経路を構築する手法)された同一の鍵であっても漏れなく遮断される仕組みとなっている。

このフィルターは、Go標準の検証機能だけでなく、macOSやWindowsのOSネイティブな検証処理へ委譲する経路にも適用される。対象鍵を含むチェーンが検出された場合、Goプログラムは x509: no valid chains built というエラーを返して接続を拒否する。

また、コード内にこのフィルターを無効化する設定項目は用意されていない。プライベート環境などで独自の信頼ルートを設定しているシステムであっても強制的に適用されるため、該当する鍵を意図的に信頼している通信も失敗する仕様となっている。この動作が設計上意図されたものかについて、Goチームからの言及はない。

Goの検証アーキテクチャと再ビルドの必要性

Goが言語処理系のリリースによって鍵をブロックした背景には、Go特有の検証アーキテクチャがある。Go公式ドキュメントに記載されている通り、標準パッケージの検証器は失効確認(外部への有効性問い合わせ)を実施しない。さらに、Google Chromeの「CRLSets」のように、ブラウザが動的に参照する外部ブロックリストを読み込む仕組みも備わっていない。

そのためGoにおいて危険な鍵を排除するには、処理系そのものにブロック対象をハードコードして新バージョンを配布する形をとる。稼働中のGoプログラムは、新しいバージョンで再ビルドされるまで従来の検証動作を継続することになる。このリリースを受けて、分散型SNS「Bluesky」の基盤実装であるindigoなどのプロジェクトは、10月20日の当日中に新バージョンを用いた再ビルドを実施した。

認証局eMudhraを巡る経緯

eMudhraは「emSign」ブランドで各種電子証明書を展開しているインドの認証局で、既存ルートはChrome、Apple、Mozillaの主要なルートストアに含まれている。同社は2026年はじめ、新しいTLSルートが既存の「emSign Root CA - G1」によってクロス署名されており、それを通じて信頼されたルートへチェーンしている旨をMozillaへ説明していた。

さらに2026年9月には、ブラウザやOSベンダーが参加する共通認証局データベース(CCADB)において、問題となった「emSign Root TLS CA - G3」を含む10件の新規ルート証明書を信頼リストへ追加する申請について、6週間にわたる公開協議が異議なく終了していた。

GoのGitHub Issueでは、適用されたパッチが「誰の何に対応するものなのか」を説明するよう求める利用者の質問が書き込まれたが、10月20日時点でGoチームからの回答は行われていない。

元URL