{"api_version":"1","generated_at":"2026-07-23T12:48:42+00:00","cve":"CVE-2020-28494","urls":{"html":"https://cve.report/CVE-2020-28494","api":"https://cve.report/api/cve/CVE-2020-28494.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2020-28494","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2020-28494"},"summary":{"title":"CVE-2020-28494","description":"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.","state":"PUBLIC","assigner":"report@snyk.io","published_at":"2021-02-02 11:15:00","updated_at":"2021-07-21 11:39:00"},"problem_types":["CWE-78"],"metrics":[],"references":[{"url":"https://snyk.io/vuln/SNYK-JS-TOTALJS-1046672","name":"https://snyk.io/vuln/SNYK-JS-TOTALJS-1046672","refsource":"MISC","tags":["Exploit","Patch","Third Party Advisory"],"title":"Command Injection in total.js | Snyk","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/totaljs/framework/commit/6192491ab2631e7c1d317c221f18ea613e2c18a5","name":"https://github.com/totaljs/framework/commit/6192491ab2631e7c1d317c221f18ea613e2c18a5","refsource":"MISC","tags":["Patch","Third Party Advisory"],"title":"Fixed \"Command Injection\" in `image.stream()` - thank to Sam Sanoop. · totaljs/framework@6192491 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-28494","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-28494","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"LEGACY","value":"Alessio Dellalibera","lang":""}],"nvd_cpes":[{"cve_year":"2020","cve_id":"28494","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"totaljs","cpe5":"total.js","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"node.js","cpe12":"*","cpe13":"*"},{"cve_year":"2020","cve_id":"28494","vulnerable":"1","versionEndIncluding":"1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"totaljs","cpe5":"total.js","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"node.js","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2020-28494","qid":"981924","title":"Nodejs (npm) Security Update for total.js (GHSA-4449-hg37-77v8)"}]},"source_records":{"cve_program":{"data_type":"CVE","data_format":"MITRE","data_version":"4.0","CVE_data_meta":{"ASSIGNER":"report@snyk.io","DATE_PUBLIC":"2021-02-02T10:21:28.204268Z","ID":"CVE-2020-28494","STATE":"PUBLIC","TITLE":"Command Injection"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"total.js","version":{"version_data":[{"version_affected":"<","version_value":"3.4.7"}]}}]},"vendor_name":"n/a"}]}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"Command Injection"}]}]},"references":{"reference_data":[{"refsource":"MISC","url":"https://snyk.io/vuln/SNYK-JS-TOTALJS-1046672","name":"https://snyk.io/vuln/SNYK-JS-TOTALJS-1046672"},{"refsource":"MISC","url":"https://github.com/totaljs/framework/commit/6192491ab2631e7c1d317c221f18ea613e2c18a5","name":"https://github.com/totaljs/framework/commit/6192491ab2631e7c1d317c221f18ea613e2c18a5"}]},"description":{"description_data":[{"lang":"eng","value":"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."}]},"impact":{"cvss":{"version":"3.1","vectorString":"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","baseScore":8.6,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"LOW","availabilityImpact":"LOW"}},"credit":[{"lang":"eng","value":"Alessio Dellalibera"}]},"nvd":{"publishedDate":"2021-02-02 11:15:00","lastModifiedDate":"2021-07-21 11:39:00","problem_types":["CWE-78"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"LOW","availabilityImpact":"LOW","baseScore":8.6,"baseSeverity":"HIGH"},"exploitabilityScore":3.9,"impactScore":4.7},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:N/C:P/I:P/A:P","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"PARTIAL","availabilityImpact":"PARTIAL","baseScore":7.5},"severity":"HIGH","exploitabilityScore":10,"impactScore":6.4,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:totaljs:total.js:*:*:*:*:*:node.js:*:*","versionEndExcluding":"3.4.7","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2020","CveId":"28494","Ordinal":"190981","Title":"CVE-2020-28494","CVE":"CVE-2020-28494","Year":"2020"},"notes":[{"CveYear":"2020","CveId":"28494","Ordinal":"1","NoteData":"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.","Type":"Description","Title":null},{"CveYear":"2020","CveId":"28494","Ordinal":"2","NoteData":"2021-02-02","Type":"Other","Title":"Published"},{"CveYear":"2020","CveId":"28494","Ordinal":"3","NoteData":"2021-02-02","Type":"Other","Title":"Modified"}]}}}