{"id":"CVE-2026-109602","state":"PUBLISHED","title":"Frappe before v16.31.0 Stored XSS via Dashboard Chart Filters","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.","publishedAt":"2026-10-12T22:21:55.160Z","updatedAt":"2026-10-13T16:45:58.408Z","severity":{"score":5.1,"label":"Medium","version":"4.0","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","source":"VulnCheck"},"assigner":"VulnCheck","products":["frappe frappe"],"affected":[{"vendor":"frappe","product":"frappe","packageURL":"pkg:pypi/frappe","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"15.118.0","versionType":"semver"},{"version":"16.0.0-beta.1","status":"affected","lessThan":"16.31.0","versionType":"semver"},{"version":"15.118.0","status":"unaffected","versionType":"semver"},{"version":"16.31.0","status":"unaffected","versionType":"semver"}]}],"references":["https://github.com/frappe/frappe/security/advisories/GHSA-hxfh-hh23-fvch","https://www.vulncheck.com/advisories/frappe-before-16.31.0-stored-xss-via-dashboard-chart-filters"],"weaknesses":["CWE-79"],"ingestedAt":"2026-10-29T20:10:33.477Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/109xxx/CVE-2026-109602.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-109602","state":"PUBLISHED","datePublished":"2026-10-12T22:21:55.160Z","dateUpdated":"2026-10-13T16:45:58.408Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-10-12T20:59:18.910Z"},"containers":{"cna":{"title":"Frappe before v16.31.0 Stored XSS via Dashboard Chart Filters","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"frappe","product":"frappe","packageURL":"pkg:pypi/frappe","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"15.118.0","versionType":"semver"},{"version":"16.0.0-beta.1","status":"affected","lessThan":"16.31.0","versionType":"semver"},{"version":"15.118.0","status":"unaffected","versionType":"semver"},{"version":"16.31.0","status":"unaffected","versionType":"semver"}]}],"references":[{"url":"https://github.com/frappe/frappe/security/advisories/GHSA-hxfh-hh23-fvch","tags":["vendor-advisory"],"name":"GitHub Security Advisory (GHSA-hxfh-hh23-fvch)"},{"url":"https://www.vulncheck.com/advisories/frappe-before-16.31.0-stored-xss-via-dashboard-chart-filters","name":"VulnCheck Advisory: Frappe before v16.31.0 Stored XSS via Dashboard Chart Filters","tags":["third-party-advisory"]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"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","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"PASSIVE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"LOW","subIntegrityImpact":"LOW","subAvailabilityImpact":"NONE","baseScore":5.1,"baseSeverity":"MEDIUM"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"REQUIRED","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE","baseScore":5.4,"baseSeverity":"MEDIUM"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","lang":"en","description":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-10-12T22:21:55.160Z"},"datePublic":"2026-09-22T00:00:00.000Z","cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:*","versionStartIncluding":"16.0.0","versionEndExcluding":"16.31.0"}]}]},{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:*","versionEndExcluding":"15.118.0"}]}]}],"credits":[{"lang":"en","value":"AarDG10","type":"finder"},{"lang":"en","value":"r1zoid","type":"reporter"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-13T15:48:33.206418Z","id":"CVE-2026-109602","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-13T16:45:58.408Z"}}]}}}