{"schemaVersion":3,"id":"CVE-2026-109602","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"Frappe before 15.118.0 and 16.x before 16.31.0 contains a stored cross-site scripting vulnerability in dashboard chart filters because jQuery renders entered filter values as rich text. Authenticated attackers can store malicious filter values that execute scripts in the browsers of users who view the dashboard chart.","dates":{"published":"2026-10-12T22:21:55.160Z","modified":"2026-10-13T16:45:58.408Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.4,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"NVD","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":5.1,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/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":5.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":5.1,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":5.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00168,"percentile":0.05823,"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.00168,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00168,"percentile":0.05823}],"last30":[{"date":"2026-10-13T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00168,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00168,"percentile":0.05823}]},"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":"frappe","name":"frappe","label":"frappe","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 15.118.0","noFixRecorded":false,"fixedIn":null},{"text":"≥ 16.0.0-beta.1, < 16.31.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 15.118.0 | ≥ 16.0.0-beta.1, < 16.31.0","eol":null,"hubHref":"/vendor/frappe/frappe"}],"affectedCount":1,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/frappe/frappe/security/advisories/GHSA-hxfh-hh23-fvch","label":"github.com/frappe/frappe/security/advisories/GHSA-hxfh-hh23-fvch","hostname":"github.com","tags":["Vendor Advisory"]},{"url":"https://www.vulncheck.com/advisories/frappe-before-16.31.0-stored-xss-via-dashboard-chart-filters","label":"www.vulncheck.com/advisories/frappe-before-16.31.0-stored-xss-via-dashboard-chart-filters","hostname":"www.vulncheck.com","tags":["Third Party Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-10-12T22:21:55.160Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-13T16:45:58.408Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":22,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T07:36:52.799Z","stale":false,"partial":false}}