{"api_version":"1","generated_at":"2026-07-23T06:04:17+00:00","cve":"CVE-2017-16022","urls":{"html":"https://cve.report/CVE-2017-16022","api":"https://cve.report/api/cve/CVE-2017-16022.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2017-16022","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2017-16022"},"summary":{"title":"CVE-2017-16022","description":"Morris.js creates an svg graph, with labels that appear when hovering over a point. The hovering label names are not escaped in versions 0.5.0 and earlier. If control over the labels is obtained, script can be injected. The script will run on the client side whenever that specific graph is loaded.","state":"PUBLIC","assigner":"support@hackerone.com","published_at":"2018-06-04 19:29:00","updated_at":"2019-10-09 23:24:00"},"problem_types":["CWE-79"],"metrics":[],"references":[{"url":"https://nodesecurity.io/advisories/307","name":"https://nodesecurity.io/advisories/307","refsource":"MISC","tags":["Third Party Advisory"],"title":"Overview","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/morrisjs/morris.js/pull/464","name":"https://github.com/morrisjs/morris.js/pull/464","refsource":"MISC","tags":["Third Party Advisory"],"title":"Escape labels in hover by JelteF · Pull Request #464 · morrisjs/morris.js · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.cve.org/CVERecord?id=CVE-2017-16022","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-16022","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2017","cve_id":"16022","vulnerable":"1","versionEndIncluding":"0.5.0","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"morris.js_project","cpe5":"morris.js","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"node.js","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2017-16022","qid":"983954","title":"Nodejs (npm) Security Update for morris.js (GHSA-fwx5-5fqj-jv98)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"support@hackerone.com","DATE_PUBLIC":"2018-04-26T00:00:00","ID":"CVE-2017-16022","STATE":"PUBLIC"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"Morris.js node module","version":{"version_data":[{"version_value":"<=0.5.0"}]}}]},"vendor_name":"HackerOne"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"Morris.js creates an svg graph, with labels that appear when hovering over a point. The hovering label names are not escaped in versions 0.5.0 and earlier. If control over the labels is obtained, script can be injected. The script will run on the client side whenever that specific graph is loaded."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"Cross-site Scripting (XSS) - Generic (CWE-79)"}]}]},"references":{"reference_data":[{"name":"https://nodesecurity.io/advisories/307","refsource":"MISC","url":"https://nodesecurity.io/advisories/307"},{"name":"https://github.com/morrisjs/morris.js/pull/464","refsource":"MISC","url":"https://github.com/morrisjs/morris.js/pull/464"}]}},"nvd":{"publishedDate":"2018-06-04 19:29:00","lastModifiedDate":"2019-10-09 23:24:00","problem_types":["CWE-79"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.0","vectorString":"CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE","baseScore":6.1,"baseSeverity":"MEDIUM"},"exploitabilityScore":2.8,"impactScore":2.7},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:M/Au:N/C:N/I:P/A:N","accessVector":"NETWORK","accessComplexity":"MEDIUM","authentication":"NONE","confidentialityImpact":"NONE","integrityImpact":"PARTIAL","availabilityImpact":"NONE","baseScore":4.3},"severity":"MEDIUM","exploitabilityScore":8.6,"impactScore":2.9,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":true}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:morris.js_project:morris.js:*:*:*:*:*:node.js:*:*","versionEndIncluding":"0.5.0","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2017","CveId":"16022","Ordinal":"113531","Title":"CVE-2017-16022","CVE":"CVE-2017-16022","Year":"2017"},"notes":[{"CveYear":"2017","CveId":"16022","Ordinal":"1","NoteData":"Morris.js creates an svg graph, with labels that appear when hovering over a point. The hovering label names are not escaped in versions 0.5.0 and earlier. If control over the labels is obtained, script can be injected. The script will run on the client side whenever that specific graph is loaded.","Type":"Description","Title":null},{"CveYear":"2017","CveId":"16022","Ordinal":"2","NoteData":"2018-06-04","Type":"Other","Title":"Published"},{"CveYear":"2017","CveId":"16022","Ordinal":"3","NoteData":"2018-06-04","Type":"Other","Title":"Modified"}]}}}