Vulnerability Name:

CVE-2021-29427 (CCN-200168)

Assigned:2021-04-09
Published:2021-04-09
Updated:2021-10-20
Summary:In Gradle from version 5.1 and before version 7.0 there is a vulnerability which can lead to information disclosure and/or dependency poisoning. Repository content filtering is a security control Gradle introduced to help users specify what repositories are used to resolve specific dependencies. This feature was introduced in the wake of the "A Confusing Dependency" blog post. In some cases, Gradle may ignore content filters and search all repositories for dependencies. This only occurs when repository content filtering is used from within a `pluginManagement` block in a settings file. This may change how dependencies are resolved for Gradle plugins and build scripts. For builds that are vulnerable, there are two risks: 1) Information disclosure: Gradle could make dependency requests to repositories outside your organization and leak internal package identifiers. 2) Dependency poisoning/Dependency confusion: Gradle could download a malicious binary from a repository outside your organization due to name squatting. For a full example and more details refer to the referenced GitHub Security Advisory. The problem has been patched and released with Gradle 7.0. Users relying on this feature should upgrade their build as soon as possible. As a workaround, users may use a company repository which has the right rules for fetching packages from public repositories, or use project level repository content filtering, inside `buildscript.repositories`. This option is available since Gradle 5.1 when the feature was introduced.
CVSS v3 Severity:7.2 High (CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H)
6.5 Medium (Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H/E:P/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): High
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): High
Integrity (I): High
Availibility (A): High
8.0 High (CCN CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H)
7.2 High (CCN Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H/E:P/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): High
Privileges Required (PR): High
User Interaction (UI): None
Scope:Scope (S): Changed
Impact Metrics:Confidentiality (C): High
Integrity (I): High
Availibility (A): High
CVSS v2 Severity:6.0 Medium (CVSS v2 Vector: AV:N/AC:M/Au:S/C:P/I:P/A:P)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Medium
Authentication (Au): Single_Instance
Impact Metrics:Confidentiality (C): Partial
Integrity (I): Partial
Availibility (A): Partial
7.1 High (CCN CVSS v2 Vector: AV:N/AC:H/Au:S/C:C/I:C/A:C)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): High
Athentication (Au): Single_Instance
Impact Metrics:Confidentiality (C): Complete
Integrity (I): Complete
Availibility (A): Complete
Vulnerability Type:CWE-829
Vulnerability Consequences:Obtain Information
References:Source: MITRE
Type: CNA
CVE-2021-29427

Source: MISC
Type: Release Notes, Vendor Advisory
https://docs.gradle.org/7.0/release-notes.html#security-advisories

Source: XF
Type: UNKNOWN
gradle-cve202129427-info-disc(200168)

Source: CCN
Type: Gradle GIT Repository
Repository content filters do not work in Settings pluginManagement

Source: CONFIRM
Type: Exploit, Third Party Advisory
https://github.com/gradle/gradle/security/advisories/GHSA-jvmj-rh6q-x395

Source: CCN
Type: Gradle Web site
Gradle

Vulnerable Configuration:Configuration 1:
  • cpe:/a:gradle:gradle:*:*:*:*:*:*:*:* (Version >= 5.1 and < 7.0)

  • Configuration 2:
  • cpe:/a:quarkus:quarkus:*:*:*:*:*:*:*:* (Version <= 2.2.3)

  • Configuration CCN 1:
  • cpe:/a:gradle:gradle:5.6.2:*:*:*:*:*:*:*

  • * Denotes that component is vulnerable
    BACK
    gradle gradle *
    quarkus quarkus *
    gradle gradle 5.6.2