Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/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
Profile image upload requires authentication (PR:L); stored XSS triggers only when a victim visits the profile (UI:R); script execution in victim's browser constitutes a scope change (S:C) with low confidentiality and integrity impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/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
Lifecycle Timeline
2DescriptionCVE.org
Frappe is a full-stack web application framework. Prior to version 15.106.0, a stored XSS vulnerability in the user profile image section allows an attacker to execute malicious scripts in the browsers of other users. This issue has been patched in version 15.106.0.
AnalysisAI
Stored cross-site scripting in Frappe's user profile image section enables script injection that executes in the browsers of any user who views the compromised profile. Affected versions are all Frappe releases prior to 15.106.0. No public exploit code or CISA KEV listing exists at time of analysis; EPSS of 0.02% (7th percentile) reflects low observed exploitation activity, though stored XSS in a shared framework carries inherent persistence risk across all applications built on Frappe.
Technical ContextAI
Frappe is a Python/JavaScript full-stack web application framework used to build business applications such as ERPNext. The vulnerability stems from CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically in the user profile image handling path. Frappe fails to adequately sanitize or encode attacker-controlled content submitted to the profile image section before persisting and later rendering it to other users, allowing HTML/JavaScript injection that is stored server-side and served to every visitor of the affected profile. The CPE cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:* confirms all Frappe versions prior to 15.106.0 are in scope regardless of platform or deployment mode.
RemediationAI
Upgrade Frappe to version 15.106.0 or later, which contains the vendor-confirmed patch per the GitHub advisory at https://github.com/frappe/frappe/security/advisories/GHSA-2wx6-8gmq-x4fw. If immediate upgrade is not feasible, consider restricting user self-registration to limit who can create accounts and submit profile images, reducing the attack surface at the cost of requiring manual user provisioning. Additionally, deploying a Content Security Policy (CSP) header that restricts script execution to trusted origins can prevent injected scripts from exfiltrating data or performing unauthorized actions, even if the XSS payload reaches the DOM. Note that CSP is a defense-in-depth measure and does not eliminate the underlying stored XSS vulnerability.
Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on
Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie
ERPNEXT v15.67.0 was discovered to contain multiple SQL injection vulnerabilities in the /api/method/frappe.desk.reportv
Frappe Framework v15.72.4 was discovered to contain a SQL injection vulnerability via the fieldname parameter in the fra
In Frappe 15.x.x before 15.72.0 and 14.x.x before 14.96.10, in the function add_tag() at `frappe/desk/doctype/tag/tag.py
Frappe version 14.10.0 allows an external attacker to remotely obtain arbitrary local files. Rated medium severity (CVSS
public/js/frappe/form/footer/timeline.js in Frappe Framework 12 through 12.0.8 does not escape HTML in the timeline and
SQL injection in Frappe framework before 15.84.0/14.99.0.
An issue was discovered in Frappe Framework 10 through 12 before 12.0.4. Rated critical severity (CVSS 9.8), this vulner
A stored cross-site scripting (XSS) vulnerability in the blog post feature of ERPNEXT v15.67.0 allows attackers to execu
SQL injection in Frappe's bulk_update function enables unauthenticated remote attackers to execute arbitrary SQL command
In ERPNext v15.83.2 and Frappe Framework v15.86.0, improper validation of uploaded SVG avatar images allows attackers to
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-36454