【活用ガイド】

JVNDB-2026-015647

The Go ProjectのGoにおけるデジタル署名の検証に関する脆弱性

概要

悪意のあるモジュールプロキシは、goコマンドのモジュールチェックサムの検証の欠陥を悪用し、チェックサムデータベースの検証を回避できます。この脆弱性は、信頼されていないモジュールプロキシ(GOMODPROXY)やチェックサムデータベース(GOSUMDB)を使用しているすべてのユーザーに影響します。悪意のあるモジュールプロキシは、改変されたGoツールチェーンのバージョンを配信する可能性があります。GOTOOLCHAIN環境変数やtoolchain行を含むgo.workまたはgo.modによって、現在インストールされているツールチェーンとは異なるGoツールチェーンのバージョンを選択した場合、goコマンドはモジュールプロキシから提供されたツールチェーンをダウンロードし実行します。悪意のあるモジュールプロキシは、このダウンロードしたツールチェーンに対するチェックサムデータベースの検証を回避できます。この脆弱性はツールチェーンのダウンロードのセキュリティに影響するため、GOTOOLCHAINを固定バージョンに設定するだけでなく、ベースとなるGoツールチェーンをアップグレードする必要があります。goツールは常にツールチェーンのハッシュを実行前に検証するため、修正済みのバージョンはキャッシュされた変更済みツールチェーンの実行を拒否します。goツールは、go.sumファイルが現在のモジュールの依存関係の正確なハッシュを含んでいると信頼しています。悪意のあるプロキシがこの脆弱性を悪用して変更されたモジュールを提供した場合、go.sumに誤ったハッシュが記録されていることになります。信頼されていないGOPROXYを設定しているユーザーは、「rm go.sum ; go mod tidy ; go mod verify」を実行することで影響の有無を確認できます。これは現在のモジュールのすべての依存関係を再検証します。詳細な欠陥内容は次の通りです。goコマンドは、ダウンロードしたモジュールがgo.sumファイルに記載されていない場合、チェックサムデータベースに照会して検証を行います。チェックサムデータベースは、モジュールのハッシュがダウンロードしたモジュールのハッシュと一致することを確認します。しかし、チェックサムデータベースがモジュールのエントリを含まない成功レスポンスを返した場合、goコマンドは誤って検証の成功を許可します。モジュールプロキシはチェックサムデータベースをミラーまたはプロキシする場合があり、その場合goコマンドはチェックサムデータベースに直接接続しません。チェックサムデータベースが報告するチェックサムは暗号的に署名されているため、悪意のあるプロキシがモジュールの報告されたチェックサムを改ざんすることはできません。しかし、空のチェックサムレスポンスや無関係なモジュールのチェックサムレスポンスを返すプロキシは、ダウンロードしたモジュールが検証済みであるかのようにgoコマンドを誤認させる可能性があります。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 高
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


The Go Project
  • Go 1.25.10 未満
  • Go 1.26.0 以上 1.26.3 未満

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
さらに、当該ソフトウェアが完全に停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

Go
CWEによる脆弱性タイプ一覧  CWEとは?

  1. デジタル署名の不適切な検証(CWE-347) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-42501
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-42501
  2. 関連文書 : cmd/go: malicious module proxy can bypass checksum database (fix CVE-2026-42501)  Issue #79070  golang/go
  3. 関連文書 : [security] Go 1.26.3 and Go 1.25.10 are released
  4. 関連文書 : cmd/go: reject sumdb response lacking module hash (775321)  Gerrit Code Review
更新履歴

  • [2026年05月15日]
      掲載