CVE-2020-7729 json
Arbitrary Code Execution
published 2020-09-03 6 y ago modified 2026-09-10 1 mo ago also GHSA-m5pj-vjjf-4m3h , EUVD-2021-1133
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.3%
- EPSS 2.3% chance of exploitation in 30 days, percentile 83%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- npm grunt 1.3.0
- n/a grunt 1.3.0
- grunt Debian 14, Debian 13, Debian 12 1.3.0-1
debian advisories DEBIAN-CVE-2020-7729
- grunt Ubuntu 18.04 LTS 1.0.1-8ubuntu0.1
- grunt Ubuntu Pro 20.04 LTS 1.0.4-2ubuntu0.1~esm1
ubuntu advisories UBUNTU-CVE-2020-7729
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2020-7729 updated cvss 7.1
nodejs-grunt: use of the unsafe load function from js-yaml package can lead to ACE
-
Red Hat All currently supported Red Hat productsnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
2.30% chance of exploitation in the next 30 days, higher than 83% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- snyk.io https://snyk.io/vuln/SNYK-JS-GRUNT-597546 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H/RL:O |
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 4.6 | AV:N/AC:H/Au:S/C:P/I:P/A:P |
| GitHub | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | grunt | <1.3.0 |
1.3.0 |
Affected products
- n/a grunt
Classification
- Weakness
-
- CWE-1188 Initialization of a Resource with an Insecure Default
References
-
github.com
/gruntjs/grunt/commit/e350cea1724eb3476464561a380fb6a64e61e4e7
web, patch, third-party-advisory
-
snyk.io
/vuln/SNYK-JS-GRUNT-597546
web, exploit, third-party-advisory
-
usn.ubuntu.com
/4595-1/
vendor-advisory, third-party-advisory
-
snyk.io
/vuln/SNYK-JAVA-ORGWEBJARSNPM-607922
web, third-party-advisory
-
github.com
/gruntjs/grunt/blob/master/lib/grunt/file.js%23L249
web, broken-link
-
lists.debian.org
/debian-lts-announce/2020/09/msg00008.html
mailing-list, web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-7729
advisory
-
usn.ubuntu.com
/4595-1
web
Sources
- CVE List CVE-2020-7729
- GitHub Advisory GHSA-m5pj-vjjf-4m3h
- NVD CVE-2020-7729
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.