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 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
The Go Project | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
Go | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/07 |
| 登録日 | 2026/05/15 |
| 最終更新日 | 2026/05/15 |



