High severity · published Apr 13, 2021
CVE-2021-29428
Local privilege escalation through system temporary directory
7.8
CVSS
0.5%
EPSS
No
On KEV
Description
In Gradle before version 7.0, on Unix-like systems, the system temporary directory can be created with open permissions that allow multiple users to create and delete files within it. Gradle builds could be vulnerable to a local privilege escalation from an attacker quickly deleting and recreating files in the system temporary directory. This vulnerability impacted builds using precompiled script plugins written in Kotlin DSL and tests for Gradle plugins written using ProjectBuilder or TestKit. If you are on Windows or modern versions of macOS, you are not vulnerable. If you are on a Unix-like operating system with the "sticky" bit set on your system temporary directory, you are not vulnerable. The problem has been patched and released with Gradle 7.0. As a workaround, on Unix-like operating systems, ensure that the "sticky" bit is set. This only allows the original user (or root) to delete a file. If you are unable to change the permissions of the system temporary directory, you can move the Java temporary directory by setting the System Property `java.io.tmpdir`. The new path needs to limit permissions to the build user only. For additional details refer to the referenced GitHub Security Advisory.
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Attack vector
Local
Complexity
Low
Privileges
Low
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 45% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
GR
gradle · gradle
< 7.0 · source: vendor, NVD
QU
Quarkus · Quarkus
through 2.2.3 · source: NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2021-29428
CVE.org
https://www.cve.org/CVERecord?id=CVE-2021-29428
Release Notes
https://docs.gradle.org/7.0/release-notes.html#security-advisories
Patch
https://github.com/gradle/gradle/pull/15240
Patch
https://github.com/gradle/gradle/pull/15654
Exploit
https://github.com/gradle/gradle/security/advisories/GHSA-89qm-pxvm-p336
More from gradle
9.8
CVE-2023-26053
Gradle is a build tool with a focus on build automation and support for multi-language development
9.8
CVE-2019-15052
The HTTP client in Gradle before 5.6 sends authentication credentials originally destined for the configured host
9.8
CVE-2016-6199
ObjectSocketWrapper.java in Gradle 2.12 allows remote attackers to execute arbitrary code via a crafted serialized object
8.1
CVE-2023-35947
Gradle is a build tool with a focus on build automation and support for multi-language development
8.1
CVE-2021-41588
In Gradle Enterprise before 2021.1.3, a crafted request can trigger deserialization of arbitrary unsafe Java objects
