{"schemaVersion":3,"id":"CVE-2026-109673","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"Frappe ERPNext before 15.103.0 and 16.x before 16.12.0 contains a stored cross-site scripting vulnerability because the names of certain records are not properly neutralized when rendered on some dashboards, tools, and portals. Authenticated attackers can craft malicious record names that execute scripts in other users' browsers, enabling data access, modification, and token theft, especially against privileged users.","dates":{"published":"2026-10-12T22:22:37.497Z","modified":"2026-10-13T16:44:26.170Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.5,"severity":"high","version":"4.0","versionLabel":"v4.0","source":"NVD","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":8.5,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":7.3,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":8.5,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":7.3,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00211,"percentile":0.108,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-10-13T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00211,"percentile":0.108}],"last30":[{"date":"2026-10-13T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00211,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00211,"percentile":0.108}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","description":"The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/79.html"}],"affected":[{"vendor":"frappe","product":"erpnext","name":"erpnext","label":"erpnext","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 15.103.0","noFixRecorded":false,"fixedIn":null},{"text":"≥ 16.0.0-beta.1, < 16.12.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 15.103.0 | ≥ 16.0.0-beta.1, < 16.12.0","eol":null,"hubHref":"/vendor/frappe/erpnext"}],"affectedCount":1,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/frappe/erpnext/security/advisories/GHSA-r99h-h44m-89m2","label":"github.com/frappe/erpnext/security/advisories/GHSA-r99h-h44m-89m2","hostname":"github.com","tags":["Vendor Advisory"]},{"url":"https://www.vulncheck.com/advisories/frappe-erpnext-before-16.12.0-stored-xss-via-crafted-record-names","label":"www.vulncheck.com/advisories/frappe-erpnext-before-16.12.0-stored-xss-via-crafted-record-names","hostname":"www.vulncheck.com","tags":["Third Party Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-10-12T22:22:37.497Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-13T16:44:26.170Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":34,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T10:48:36.856Z","stale":false,"partial":false}}