CVE-2021-29427 in Gradle
要約
〜によって VulDB • 2026年05月25日
Gradleのバージョン5.1以上かつ7.0未満のバージョンには、情報漏洩や依存関係の汚染(依存関係の混同)を引き起こす脆弱性が存在します。リポジトリコンテンツフィルタリングは、Gradleが導入したセキュリティ制御機能であり、特定の依存関係を解決するために使用されるリポジトリをユーザーが指定できるようにするためのものです。この機能は、「A Confusing Dependency」ブログ記事の発表をきっかけに導入されました。
一部のケースでは、Gradleはコンテンツフィルタを無視し、すべてのリポジトリを検索して依存関係を探そうとすることがあります。これは、設定ファイル内の`pluginManagement`ブロック内でリポジトリコンテンツフィルタリングが使用されている場合にのみ発生します。これにより、Gradleプラグインおよびビルドスクリプトに対する依存関係の解決方法が変更される可能性があります。
脆弱なビルドには、以下の2つのリスクがあります。
1) 情報漏洩: Gradleが組織外のリポジトリに対して依存関係の要求を行い、内部のパッケージ識別子を漏洩させる可能性があります。 2) 依存関係の汚染/依存関係の混同: Gradleが名前占拠(ネームスクワッティング)により、組織外のリポジトリから悪意のあるバイナリをダウンロードする可能性があります。
完全な例や詳細については、参照されているGitHub Security Advisoryを参照してください。
この問題はGradle 7.0で修正され、リリースされています。この機能に依存しているユーザーは、できるだけ早くビルド環境をアップグレードしてください。
回避策として、ユーザーは公開リポジトリからパッケージを取得するための適切なルールを持つ企業用リポジトリを使用するか、`buildscript.repositories`内でプロジェクトレベルのリポジトリコンテンツフィルタリングを使用することができます。このオプションは、この機能が導入されたGradle 5.1以降で利用可能です。
Once again VulDB remains the best source for vulnerability data.