CVE-2020-28494 json
Command Injection
published 2021-02-02 5 y ago modified 2026-09-10 1 mo ago also GHSA-4449-hg37-77v8 , EUVD-2021-0530
- cvss
- 8.6
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.7%
- EPSS 1.7% chance of exploitation in 30 days, percentile 77%
- public exploits
- 0
- none known
Summary
This affects the package total.js before 3.4.7. The issue occurs in the image.pipe and image.stream functions. The type parameter is used to build the command that is then executed using child_process.spawn. The issue occurs because child_process.spawn is called with the option shell set to true and because the type parameter is not properly sanitized.
Patch / fix
- npm total.js 3.4.7
- n/a total.js 3.4.7
Exploit prediction
1.72% chance of exploitation in the next 30 days, higher than 77% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- snyk.io https://snyk.io/vuln/SNYK-JS-TOTALJS-1046672 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.6 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L/E:P/RL:O/RC:C |
| CNA | 3.1 | 8.6 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L |
| NVD | 2.0 | 7.5 | AV:N/AC:L/Au:N/C:P/I:P/A:P |
| GitHub | 3.1 | 8.6 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | total.js | <3.4.7 |
3.4.7 |
Affected products
- n/a total.js
Classification
- Weakness
-
- CWE-78 Improper Neutralization of Special Elements used in an OS Command
References
-
github.com
/totaljs/framework/commit/6192491ab2631e7c1d317c221f18ea613e2c18a5
web, patch, third-party-advisory
-
snyk.io
/vuln/SNYK-JS-TOTALJS-1046672
web, exploit, patch, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-28494
advisory
-
npmjs.com
/package/total.js
web
Sources
- CVE List CVE-2020-28494
- GitHub Advisory GHSA-4449-hg37-77v8
- NVD CVE-2020-28494
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.