CVE-2022-31156

Source
https://nvd.nist.gov/vuln/detail/CVE-2022-31156
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-31156.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-31156
Aliases
Related
Published
2022-07-14T20:15:08Z
Modified
2024-10-12T09:59:38.025473Z
Severity
  • 4.4 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N CVSS Calculator
Summary
[none]
Details

Gradle is a build tool. Dependency verification is a security feature in Gradle Build Tool that was introduced to allow validation of external dependencies either through their checksum or cryptographic signatures. In versions 6.2 through 7.4.2, there are some cases in which Gradle may skip that verification and accept a dependency that would otherwise fail the build as an untrusted external artifact. This can occur in two ways. When signature verification is disabled but the verification metadata contains entries for dependencies that only have a gpg element but no checksum element. When signature verification is enabled, the verification metadata contains entries for dependencies with a gpg element but there is no signature file on the remote repository. In both cases, the verification will accept the dependency, skipping signature verification and not complaining that the dependency has no checksum entry. For builds that are vulnerable, there are two risks. Gradle could download a malicious binary from a repository outside your organization due to name squatting. For those still using HTTP only and not HTTPS for downloading dependencies, the build could download a malicious library instead of the expected one. Gradle 7.5 patches this issue by making sure to run checksum verification if signature verification cannot be completed, whatever the reason. Two workarounds are available: Remove all gpg elements from dependency verification metadata if you disable signature validation and/or avoid adding gpg entries for dependencies that do not have signature files.

References

Affected packages

Git / github.com/gradle/gradle

Affected ranges

Type
GIT
Repo
https://github.com/gradle/gradle
Events

Affected versions

v6.*

v6.2.0
v6.2.1
v6.2.2
v6.3.0
v6.3.0-RC1
v6.3.0-RC2
v6.3.0-RC3
v6.3.0-RC4
v6.4.0
v6.4.0-RC1
v6.4.0-RC2
v6.4.0-RC3
v6.4.0-RC4
v6.4.1
v6.5.0
v6.5.0-M1
v6.5.0-M2
v6.5.0-RC1
v6.5.1
v6.6.0
v6.6.0-M1
v6.6.0-M2
v6.6.0-M3
v6.6.0-RC1
v6.6.0-RC2
v6.6.0-RC3
v6.6.0-RC4
v6.6.0-RC5
v6.6.0-RC6
v6.6.1
v6.7.0
v6.7.0-RC1
v6.7.0-RC2
v6.7.0-RC3
v6.7.0-RC4
v6.7.0-RC5
v6.7.1
v6.8.0
v6.8.0-M1
v6.8.0-M2
v6.8.0-M3
v6.8.0-RC1
v6.8.0-RC2
v6.8.0-RC3
v6.8.0-RC4
v6.8.0-RC5
v6.8.1
v6.8.2
v6.8.3

v7.*

v7.0.0
v7.0.0-M1
v7.0.0-M2
v7.0.0-M3
v7.0.0-RC1
v7.0.0-RC2
v7.0.1
v7.0.2
v7.1.0
v7.1.0-RC1
v7.1.0-RC2
v7.1.1
v7.2.0
v7.2.0-RC1
v7.2.0-RC2
v7.2.0-RC3
v7.3.0
v7.3.0-RC1
v7.3.0-RC2
v7.3.0-RC3
v7.3.0-RC4
v7.3.0-RC5
v7.3.1
v7.3.2
v7.3.3
v7.3.3-RC1
v7.4.0
v7.4.0-RC1
v7.4.0-RC2
v7.4.1
v7.4.2
v7.5.0-M1
v7.5.0-RC1
v7.5.0-RC2
v7.5.0-RC3
v7.5.0-RC4
v7.5.0-RC5