{"schemaVersion":3,"id":"CVE-2026-109604","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"Frappe ERPNext before 15.112.0 and 16.x before 16.23.0 contains a stored cross-site scripting vulnerability because a tool view interpolates stored record names into markup without escaping. An authenticated user able to create such records can give them malicious names, executing script in the session of any user who later opens that tool.","dates":{"published":"2026-10-12T22:21:56.499Z","modified":"2026-10-18T12:13:29.087Z","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.00207,"percentile":0.10231,"severity":"low","asOf":"2026-10-22T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-10-13T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-22T00:00:00.000Z","score":0.00207,"percentile":0.10231}],"last30":[{"date":"2026-10-13T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00207,"percentile":null},{"date":"2026-10-22T00:00:00.000Z","score":0.00207,"percentile":0.10231}]},"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.112.0","noFixRecorded":false,"fixedIn":null},{"text":"≥ 16.0.0-beta.1, < 16.23.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 15.112.0 | ≥ 16.0.0-beta.1, < 16.23.0","eol":null,"hubHref":"/vendor/frappe/erpnext"}],"affectedCount":1,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/frappe/erpnext/security/advisories/GHSA-734c-hv9r-mg2c","label":"github.com/frappe/erpnext/security/advisories/GHSA-734c-hv9r-mg2c","hostname":"github.com","tags":["Vendor Advisory"]},{"url":"https://www.vulncheck.com/advisories/erpnext-before-15.112.0-stored-xss-via-tool-view-record-names","label":"www.vulncheck.com/advisories/erpnext-before-15.112.0-stored-xss-via-tool-view-record-names","hostname":"www.vulncheck.com","tags":["Third Party Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-10-12T22:21:56.499Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-18T12:13:29.087Z","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-22T15:44:18.407Z","stale":false,"partial":false}}