{"api_version":"1","generated_at":"2026-04-23T04:08:59+00:00","cve":"CVE-2020-7746","urls":{"html":"https://cve.report/CVE-2020-7746","api":"https://cve.report/api/cve/CVE-2020-7746.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2020-7746","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2020-7746"},"summary":{"title":"CVE-2020-7746","description":"This affects the package chart.js before 2.9.4. The options parameter is not properly sanitized when it is processed. When the options are processed, the existing options (or the defaults options) are deeply merged with provided options. However, during this operation, the keys of the object being set are not checked, leading to a prototype pollution.","state":"PUBLIC","assigner":"report@snyk.io","published_at":"2020-10-29 08:15:00","updated_at":"2022-12-02 19:44:00"},"problem_types":["CWE-1321"],"metrics":[],"references":[{"url":"https://github.com/chartjs/Chart.js/pull/7920","name":"N/A","refsource":"CONFIRM","tags":["Patch","Third Party Advisory"],"title":"Use Object.create(null) as `merge` target, to prevent prototype pollution by kurkle · Pull Request #7920 · chartjs/Chart.js · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://snyk.io/vuln/SNYK-JS-CHARTJS-1018716","name":"N/A","refsource":"CONFIRM","tags":["Exploit"],"title":"Prototype Pollution in chart.js | Snyk","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-1019374","name":"N/A","refsource":"CONFIRM","tags":["Exploit","Third Party Advisory"],"title":"Prototype Pollution in org.webjars.npm:chart.js | Snyk","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSBOWERGITHUBCHARTJS-1019376","name":"N/A","refsource":"CONFIRM","tags":["Exploit","Third Party Advisory"],"title":"Prototype Pollution in org.webjars.bowergithub.chartjs:chart.js | Snyk","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSBOWER-1019375","name":"N/A","refsource":"CONFIRM","tags":["Exploit","Third Party Advisory"],"title":"Prototype Pollution in org.webjars.bower:chart.js | Snyk","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-7746","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7746","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"LEGACY","value":"Alessio Della Libera (d3lla)","lang":""}],"nvd_cpes":[{"cve_year":"2020","cve_id":"7746","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"chartjs","cpe5":"chart.js","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"node.js","cpe12":"*","cpe13":"*"},{"cve_year":"2020","cve_id":"7746","vulnerable":"1","versionEndIncluding":"1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"chartjs","cpe5":"chart.js","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"node.js","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2020-7746","qid":"379374","title":"Zimbra Collaboration Suite (ZCS) Multiple Vulnerabilities"},{"cve":"CVE-2020-7746","qid":"590764","title":"Mitsubishi Electric EcoWebServerIII Multiple Vulnerabilities (ICSA-22-055-02)"},{"cve":"CVE-2020-7746","qid":"590808","title":"Mitsubishi Electric EcoWebServerIII Multiple Vulnerabilities (ICSA-22-055-02)"},{"cve":"CVE-2020-7746","qid":"981833","title":"Nodejs (npm) Security Update for chart.js (GHSA-h68q-55jf-x68w)"}]},"source_records":{"cve_program":{"data_type":"CVE","data_format":"MITRE","data_version":"4.0","CVE_data_meta":{"ASSIGNER":"report@snyk.io","DATE_PUBLIC":"2020-10-29T08:02:11.306556Z","ID":"CVE-2020-7746","STATE":"PUBLIC","TITLE":"Prototype Pollution"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"chart.js","version":{"version_data":[{"version_affected":"<","version_value":"2.9.4"}]}}]},"vendor_name":"n/a"}]}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"Prototype Pollution"}]}]},"references":{"reference_data":[{"refsource":"MISC","url":"https://snyk.io/vuln/SNYK-JS-CHARTJS-1018716","name":"https://snyk.io/vuln/SNYK-JS-CHARTJS-1018716"},{"refsource":"MISC","url":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-1019374","name":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-1019374"},{"refsource":"MISC","url":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSBOWER-1019375","name":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSBOWER-1019375"},{"refsource":"MISC","url":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSBOWERGITHUBCHARTJS-1019376","name":"https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSBOWERGITHUBCHARTJS-1019376"},{"refsource":"MISC","url":"https://github.com/chartjs/Chart.js/pull/7920","name":"https://github.com/chartjs/Chart.js/pull/7920"}]},"description":{"description_data":[{"lang":"eng","value":"This affects the package chart.js before 2.9.4. The options parameter is not properly sanitized when it is processed. When the options are processed, the existing options (or the defaults options) are deeply merged with provided options. However, during this operation, the keys of the object being set are not checked, leading to a prototype pollution."}]},"impact":{"cvss":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:P/RL:U/RC:C","baseScore":7.5,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"}},"credit":[{"lang":"eng","value":"Alessio Della Libera (d3lla)"}]},"nvd":{"publishedDate":"2020-10-29 08:15:00","lastModifiedDate":"2022-12-02 19:44:00","problem_types":["CWE-1321"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseScore":9.8,"baseSeverity":"CRITICAL"},"exploitabilityScore":3.9,"impactScore":5.9},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:N/C:N/I:N/A:P","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"PARTIAL","baseScore":5},"severity":"MEDIUM","exploitabilityScore":10,"impactScore":2.9,"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:chartjs:chart.js:*:*:*:*:*:node.js:*:*","versionEndExcluding":"2.9.4","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2020","CveId":"7746","Ordinal":"168027","Title":"CVE-2020-7746","CVE":"CVE-2020-7746","Year":"2020"},"notes":[{"CveYear":"2020","CveId":"7746","Ordinal":"1","NoteData":"This affects the package chart.js before 2.9.4. The options parameter is not properly sanitized when it is processed. When the options are processed, the existing options (or the defaults options) are deeply merged with provided options. However, during this operation, the keys of the object being set are not checked, leading to a prototype pollution.","Type":"Description","Title":null},{"CveYear":"2020","CveId":"7746","Ordinal":"2","NoteData":"2020-10-29","Type":"Other","Title":"Published"},{"CveYear":"2020","CveId":"7746","Ordinal":"3","NoteData":"2020-10-29","Type":"Other","Title":"Modified"}]}}}