Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister or authenticate to Frappe instance
-
DeliveryUpload crafted XSS payload as profile image
-
ExploitPayload persists in server-side storage
-
ExecutionVictim user visits attacker's profile page
-
PersistMalicious script executes in victim's browser
-
ImpactExfiltrate session token or perform actions as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must have the ability to set or update a profile image in the Frappe instance - in most deployments this requires an authenticated user account, making PR:L the realistic privilege level despite the PR:N in the provided CVSS 4.0 vector. A victim user must subsequently navigate to and render the attacker's profile page, providing the trigger for script execution. Exploitation is limited to Frappe instances running versions prior to 15.106.0. If the Frappe deployment restricts public self-registration, the pool of potential attackers is limited to existing credentialed users. No specific non-default configuration is required beyond a standard Frappe installation with user profiles accessible to other users. |
| Impact | The CVSS 4.0 score of 6.9 with vector 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 warrants scrutiny: the PR:N (no privileges required) and UI:N metrics are inconsistent with the described attack scenario, which involves an attacker uploading a malicious profile image - an action that typically requires an authenticated session in Frappe. Additionally, stored XSS inherently requires a victim to navigate to the affected page (implying at least passive user interaction, UI:P in CVSS 4.0 terms). These metric choices should be verified against the vendor advisory at GHSA-2wx6-8gmq-x4fw. EPSS at 0.02% confirms no significant observed exploitation, and the absence of a KEV listing or public POC further tempers urgency. Despite a relatively high numerical score, the real-world risk depends heavily on whether unauthenticated account creation is permitted in a given Frappe deployment - if registration is restricted, the attack surface is narrowed to existing users. |
| Exploit ScenarioDerived | An attacker with a Frappe account crafts a profile image upload containing an embedded JavaScript payload that evades server-side sanitization. When a legitimate user - such as an administrator or coworker - navigates to the attacker's profile page, the malicious script executes silently in their browser, potentially exfiltrating session cookies or CSRF tokens to an attacker-controlled server. No public proof-of-concept exists at time of analysis, but the attack mechanics are well-understood for stored XSS. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 12, 2026
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.
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.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when Frappe gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
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
Lifecycle Timeline
1DescriptionCVE.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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database c
SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa
Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A
An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev
Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie
SQL injection in Frappe HelpDesk 1.14.0 dashboard functionality allows authenticated attackers to execute arbitrary SQL
In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re
EUVD-2026-36454
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB