ホームページ  >  記事  >  バックエンド開発  >  Golang: golang.org/x/net 上の google.golang.org/api の古い依存関係を処理する方法

Golang: golang.org/x/net 上の google.golang.org/api の古い依存関係を処理する方法

WBOY
WBOY転載
2024-02-06 08:09:11862ブラウズ

Golang:如何处理 google.golang.org/api 对 golang.org/x/net 的过时依赖项

質問の内容

最近、github.com dependabot が、私のプロジェクトの一部の依存関係が DOS 攻撃に対して脆弱であり、「破損した、または危険な暗号化アルゴリズム」を持っていると苦情を言いました。 「制御されていないリソース消費」エラーが発生します。

具体的には、golang.org/x/net モジュールの CVE-2022-27664、その他のモジュールの CVE-2022-27191 および CVE-2022-32149 について警告されました。

私がやったのは、使用されているすべてのモジュールに対して「go get -u」を実行することでした。明らかに、これでは問題は解決しませんでした。次に、モジュールの依存関係を見つけるために「gograph」を使用し始めました。しばらく時間がかかりましたが、見つけた依存関係の順序は次のとおりです:

リーリー

これは、2023 年 3 月 17 日以降の最新の更新された google.golang.org/api パッケージは、2018 net の依存関係から golang.org/x/ になることを意味します。

他の Google パッケージが古いネットワーク モジュールに多くの依存関係を持っていることがわかりました:

リーリー

github.com/googleapis/google-api-go-client リポジトリを確認したところ、この問題が見つかりました https://github.com/googleapis/google-api-go-client/issues/1048 私も同じ問題を言いましたが、ユーザー hachier は、go list -m all コマンドで最新バージョンが表示されるので問題ない、と言いました。

それで、主な質問は、これは問題ですか、そしてその理由は次のとおりです。

ここで何を修正すべきか、github dependabot チェックか google-api-go-client モジュールの依存関係かわかりません。


正解


この質問に答える番です。

go mod chart を使用して、プロジェクト内のすべてのパッケージを別のドラフト リポジトリで 1 つずつチェックしようとしたところ、これらの脆弱な依存関係は別のリポジトリからのものでした: github .com/go- gorm/postgres

つまり、脆弱な依存関係がどこから来ているかを誤って特定してしまいました。どうやらこれは巨大な依存関係グラフが原因であるようです:

リーリー

プロジェクトの依存関係を視覚化する方法を探している人は、ここにあります:

リーリー

元の質問に戻ります。これは、古いバージョンの go を使用している github.com/go-gorm/postgres が原因で発生します。私の理解する限り、これを修正する唯一の方法は、go バージョンを 1.18 にアップグレードすることです。バージョンが低い場合、go mod chart では多くの脆弱なパッケージが表示されます。

以上がGolang: golang.org/x/net 上の google.golang.org/api の古い依存関係を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。