{"id":"CVE-2026-109662","state":"PUBLISHED","title":"Frappe ERPNext before 15.112.0 Stored XSS via Public Portal Form","description":"Frappe ERPNext before 15.112.0 and 16.x before 16.23.0 contains a stored cross-site scripting vulnerability in a public portal form that accepts unauthenticated submissions and stores content later rendered with insufficient neutralisation. Unauthenticated attackers can submit crafted markup that executes in the browser sessions of staff who review the stored record.","publishedAt":"2026-10-12T22:22:30.244Z","updatedAt":"2026-10-14T12:37:39.019Z","severity":{"score":5.3,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","source":"VulnCheck"},"assigner":"VulnCheck","products":["frappe erpnext"],"affected":[{"vendor":"frappe","product":"erpnext","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"15.112.0","versionType":"semver"},{"version":"16.0.0-beta.1","status":"affected","lessThan":"16.23.0","versionType":"semver"},{"version":"15.112.0","status":"unaffected","versionType":"semver"},{"version":"16.23.0","status":"unaffected","versionType":"semver"}]}],"references":["https://github.com/frappe/erpnext/security/advisories/GHSA-4rfh-2hfg-9m7w","https://www.vulncheck.com/advisories/frappe-erpnext-before-15.112.0-stored-xss-via-public-portal-form"],"weaknesses":["CWE-79"],"ingestedAt":"2026-10-29T20:10:33.477Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/109xxx/CVE-2026-109662.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-109662","state":"PUBLISHED","datePublished":"2026-10-12T22:22:30.244Z","dateUpdated":"2026-10-14T12:37:39.019Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-10-12T21:07:34.160Z"},"containers":{"cna":{"title":"Frappe ERPNext before 15.112.0 Stored XSS via Public Portal Form","descriptions":[{"lang":"en","value":"Frappe ERPNext before 15.112.0 and 16.x before 16.23.0 contains a stored cross-site scripting vulnerability in a public portal form that accepts unauthenticated submissions and stores content later rendered with insufficient neutralisation. Unauthenticated attackers can submit crafted markup that executes in the browser sessions of staff who review the stored record."}],"affected":[{"vendor":"frappe","product":"erpnext","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"15.112.0","versionType":"semver"},{"version":"16.0.0-beta.1","status":"affected","lessThan":"16.23.0","versionType":"semver"},{"version":"15.112.0","status":"unaffected","versionType":"semver"},{"version":"16.23.0","status":"unaffected","versionType":"semver"}]}],"references":[{"url":"https://github.com/frappe/erpnext/security/advisories/GHSA-4rfh-2hfg-9m7w","tags":["vendor-advisory"],"name":"GitHub Security Advisory (GHSA-4rfh-2hfg-9m7w)"},{"url":"https://www.vulncheck.com/advisories/frappe-erpnext-before-15.112.0-stored-xss-via-public-portal-form","name":"VulnCheck Advisory: Frappe ERPNext before 15.112.0 Stored XSS via Public Portal Form","tags":["third-party-advisory"]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"PASSIVE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"LOW","subIntegrityImpact":"LOW","subAvailabilityImpact":"NONE","baseScore":5.3,"baseSeverity":"MEDIUM"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/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"}}],"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:22:30.244Z"},"datePublic":"2026-08-13T00:00:00.000Z","cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:*","versionEndExcluding":"15.112.0"}]}]},{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:*","versionStartIncluding":"16.0.0","versionEndExcluding":"16.23.0"}]}]}],"credits":[{"lang":"en","value":"diptanilsaha","type":"finder"},{"lang":"en","value":"muztahidultanim","type":"reporter"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-14T12:37:25.322877Z","id":"CVE-2026-109662","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-14T12:37:39.019Z"}}]}}}