CVE-2020-7729
Arbitrary Code Execution
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.1
Arbitrary Code Execution
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
CVE-2020-7729- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H/RL:O - Updated
- 2026-11-02
EUVDEUVD-2021-1133
7.1
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
EUVD-2021-1133- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H/RL:O - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-m5pj-vjjf-4m3h
7.1
Arbitrary Code Execution in grunt
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
GHSA-m5pj-vjjf-4m3h- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-1188
- Updated
- 2026-11-02
NVD
7.1
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
CVE-2020-7729- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - CVSS 2.0
- 4.6 Medium
AV:N/AC:H/Au:S/C:P/I:P/A:P - Weakness
- CWE-1188
- Updated
- 2026-11-02
OSVAZL-44379
7.1
CVE-2020-7729 affecting package js-jquery 3.5.0-4
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
AZL-44379- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-05
OSV
7.1
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
CVE-2020-7729- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 7 moreShow less
OSVDEBIAN-CVE-2020-7729
7.1
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
DEBIAN-CVE-2020-7729- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-m5pj-vjjf-4m3h
7.1
Arbitrary Code Execution in grunt
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
GHSA-m5pj-vjjf-4m3h- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-1188
- Updated
- 2026-11-02
OSVOESA-2022-1544
7.1
nodejs-grunt security update
Grunt is the JavaScript task runner. Why use a task runner? In one word: automation. The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes. After you've configured it, a task runner can do most of that mundane work for you with basically zero effort.
Security Fix(es):
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.(CVE-2020-7729)
- Record
OESA-2022-1544- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2022-2048
7.1
nodejs-grunt security update
Grunt is the JavaScript task runner. Why use a task runner? In one word: automation. The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes. After you've configured it, a task runner can do most of that mundane work for you with basically zero effort.
Security Fix(es):
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.(CVE-2020-7729)
- Record
OESA-2022-2048- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2020-7729
7.1
The package grunt before 1.3.0 are vulnerable to Arbitrary Code Execution due to the default usage of the function load() instead of its secure replacement safeLoad() of the package js-yaml inside grunt.file.readYAML.
- Record
UBUNTU-CVE-2020-7729- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUSN-4595-1 No score
grunt vulnerability
It was discovered that Grunt did not properly load yaml files. An attacker could possibly use this to execute arbitrary code. (CVE-2020-7729)
- Record
USN-4595-1- Updated
- 2026-11-02
OSVUSN-5847-1 No score
grunt vulnerabilities
It was discovered that Grunt was not properly loading YAML files before parsing them. An attacker could possibly use this issue to execute arbitrary code. (CVE-2020-7729)
It was discovered that Grunt was not properly handling symbolic links when performing file copy operations. An attacker could possibly use this issue to expose sensitive information or execute arbitrary code. (CVE-2022-0436)
It was discovered that there was a race condition in the Grunt file copy function, which could lead to an arbitrary file write. An attacker could possibly use this issue to perform a local privilege escalation attack or to execute arbitrary code. (CVE-2022-1537)
- Record
USN-5847-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
gruntnpm |
before 1.3.0 | 1.3.0 |
js-jqueryAzure Linux:3 |
through 3.5.0-4 | None known |
gruntDebian:12 |
before 1.3.0-1 | 1.3.0-1 |
gruntDebian:13 |
before 1.3.0-1 | 1.3.0-1 |
gruntDebian:14 |
before 1.3.0-1 | 1.3.0-1 |
gruntDebian:9 |
before 1.0.1-5+deb9u1, plus listed versions 1.0.1-5 |
1.0.1-5+deb9u1 |
nodejs-gruntopenEuler:20.03-LTS-SP1 |
before 1.0.1-2.oe1 | 1.0.1-2.oe1 |
nodejs-gruntopenEuler:20.03-LTS-SP2 |
before 1.0.1-2.oe1 | 1.0.1-2.oe1 |
nodejs-gruntopenEuler:20.03-LTS-SP3 |
before 1.0.1-2.oe1 | 1.0.1-2.oe1 |
nodejs-gruntopenEuler:22.03-LTS |
before 1.0.1-5.oe2203 | 1.0.1-5.oe2203 |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
gruntUbuntu:18.04:LTS |
before 1.0.1-8ubuntu0.1, plus listed versions 1.0.1-51.0.1-61.0.1-71.0.1-8 |
1.0.1-8ubuntu0.1 |
gruntUbuntu:Pro:20.04:LTS |
before 1.0.4-2ubuntu0.1~esm1, plus listed versions 1.0.1-91.0.4-2 |
1.0.4-2ubuntu0.1~esm1 |
gruntUbuntu:Pro:18.04:LTS From an advisory covering 3 CVEs |
before 1.0.1-8ubuntu0.1+esm1, plus listed versions 1.0.1-51.0.1-61.0.1-71.0.1-81.0.1-8ubuntu0.1 |
1.0.1-8ubuntu0.1+esm1 |
gruntUbuntu:Pro:20.04:LTS From an advisory covering 3 CVEs |
before 1.0.4-2ubuntu0.1~esm1, plus listed versions 1.0.1-91.0.4-2 |
1.0.4-2ubuntu0.1~esm1 |
gruntUbuntu:Pro:22.04:LTS From an advisory covering 3 CVEs |
before 1.4.1-2ubuntu0.1~esm1, plus listed versions 1.3.0-11.3.0-21.4.1-11.4.1-2 |
1.4.1-2ubuntu0.1~esm1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-7729 is a high vulnerability (CVSS 7.1) in Gruntjs Grunt, published September 3, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.30%, the 83rd percentile. Fixed in grunt 1.3.0.
References
snyk.io/vuln/SNYK-JS-GRUNT-597546
snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-607922
github.com/gruntjs/grunt/blob/master/lib/grunt/file.js%23L249
github.com/gruntjs/grunt/commit/e350cea1724eb3476464561a380fb6a64e61e4e7
lists.debian.org/debian-lts-announce/2020/09/msg00008.html
usn.ubuntu.com/4595-1
Show 11 moreShow less
nvd.nist.gov/vuln/detail/CVE-2020-7729
github.com/advisories/GHSA-m5pj-vjjf-4m3h
security-tracker.debian.org/tracker/CVE-2020-7729
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2022-1544
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2022-2048
ubuntu.com/security/CVE-2020-7729
ubuntu.com/security/notices/USN-4595-1
ubuntu.com/security/notices/USN-5847-1
cve.org/CVERecord?id=CVE-2020-7729
ubuntu.com/security/CVE-2022-0436
ubuntu.com/security/CVE-2022-1537