Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain authenticated Frappe account
-
DeliverySet user name to crafted XSS payload
-
ExploitVictim opens leaderboard page
-
ExecutionPayload executes in victim browser
-
ImpactHijack session or act 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 hold an authenticated Frappe account capable of setting its own user/display name (PR:L), and a victim must actively navigate to the Frappe leaderboard page for the stored payload to execute (UI:P). The specific vulnerable feature is the leaderboard page, which renders user names without output neutralization. Exploitation is meaningfully amplified on instances that permit self-service account registration and is limited by: the need for a valid account, the requirement that victims view the leaderboard, and the affected version range (Frappe before 14.99.10 and 15.x before 15.91.1) - patched instances (>=14.99.10 or >=15.91.1) are not affected. |
| Impact | This is a stored (persistent) cross-site scripting flaw (CWE-79) in the Frappe framework's leaderboard page, scored CVSS 4.0 5.1 (MEDIUM). The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N) indicates network-reachable, low-complexity exploitation that requires LOW privileges (PR:L - an authenticated account to set a crafted user name) and passive user interaction (UI:P - a victim must view the leaderboard). The impact is confined to the subsequent system (the victim's browser): no direct confidentiality/integrity/availability impact on the vulnerable server itself (VC/VI/VA:N), with low confidentiality and integrity impact on the browser context (SC:L/SI:L). There is NO CISA KEV listing, NO EPSS score, and NO public PoC referenced in the provided data - so exploitation signals are all negative/absent. The result is a genuine but modest-priority vulnerability: real because exploitation prerequisites are low (any authenticated user can plant the payload) and the payload fires automatically for every leaderboard viewer, but limited because it requires an authenticated foothold, victim interaction, and yields only in-browser script execution rather than server compromise. EPSS and KEV data are missing rather than low, so widespread-exploitation likelihood cannot be quantified - treat as a patch-in-routine-cycle item unless the Frappe instance exposes self-service/public account registration, which would raise the practical risk. |
| Exploit ScenarioDerived | An authenticated Frappe user (e.g., on an instance that allows self-registration) sets their display name to a string containing a JavaScript payload. When administrators or other users open the leaderboard page, the unsanitized name renders and the script executes in their browser session, enabling session-token theft or actions-on-behalf. No public exploit code is referenced, but the attack is trivial given low complexity (AC:L) and only low privileges (PR:L). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Stored cross-site scripting (CWE-79) in the Frappe framework's leaderboard page allows an authenticated user to persist a crafted display name whose payload executes in the browsers of other users who open the leaderboard, in all versions before 14.99.10 and 15.x before 15.91.1. Because the name is stored server-side and rendered on a shared page, the payload fires for every visitor without further attacker interaction, giving cross-site scripting in the context of the Frappe application's origin. Exploitation requires a valid account capable of setting its own user name (PR:L) plus a victim navigating to the leaderboard (UI:P); no public exploit code or confirmed active exploitation was identified at time of analysis, and the CVSS 4.0 base score of 5.1 (MEDIUM) reflects the limited direct confidentiality/integrity impact on the vulnerable system offset by scope change to the victim's browser session.
RemediationAI
Vendor-released patch: Frappe 14.99.10 for the 14.x line and Frappe 15.91.1 for the 15.x line - upgrade to the appropriate fixed release as the primary and complete fix, per the vendor advisory at https://github.com/frappe/frappe/security/advisories/GHSA-cx24-w5gm-5vv9. If immediate upgrade is not possible, reduce exposure with compensating controls that directly target the exploit prerequisites: disable self-service account registration and email-based signups so attackers cannot trivially obtain the authenticated account needed to store a payload (trade-off: legitimate new-user onboarding and any customer-facing signup flows must be handled manually); restrict access to the leaderboard page through the Frappe role/permission system or a reverse-proxy rule that returns 403 to unprivileged or external clients (trade-off: the leaderboard becomes unavailable to the users who would otherwise legitimately view it, and any internal links to it will break); and tighten who may edit their own full name / display name, routing name changes through an administrator or a validation hook that rejects HTML-significant characters (trade-off: added helpdesk overhead and reduced user self-service, plus custom scripts may need to be updated). As a supplementary detective measure, audit existing user records for name fields containing angle brackets, script markers, or event-handler attributes and neutralize any found, since payloads already stored remain live until remediated. Note that upgrading is the only measure that removes the underlying missing output-encoding defect.
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 full-stack Python web framework, built on a MariaDB/PostgreSQL-backed document model and Jinja-style server-side templates, that powers ERPNext and many custom business applications. The affected code path is the leaderboard page, a shared, aggregate view that lists users (frequently ranked by activity or points) and interpolates each user's stored name directly into the generated HTML rather than escaping it. That missing output neutralization is the root cause class described by CWE-79 (Improper Neutralization of Input During Web Page Generation), and because the tainted value is persisted in the user record it is a stored/persistent XSS rather than a reflected one. The CPE entry cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:* confirms the framework itself (not a downstream app) is the affected component, with the vulnerable window bounded at 14.99.10 on the 14.x line and 15.91.1 on the 15.x line. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P, with SC:L/SI:L) maps to a scope-changing, authenticated, user-interaction-dependent flaw whose consequences are confined to low-level confidentiality and integrity loss in the victim's browser context rather than to the Frappe server itself.
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:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Authenticated attacker plants payload (PR:L), victim must view the page (UI:R), and script executing in another user's browser is a scope change (S:C) with low C/I and no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Frappe before 14.99.10 and 15.x before 15.91.1 contains a stored cross-site scripting vulnerability in the leaderboard page because user names are rendered without proper neutralization. Authenticated attackers can set a crafted user name that executes arbitrary JavaScript in the browsers of other users who view the leaderboard.
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-2025-211072
GHSA-q3x5-34r6-7hhv
NVD
CVE.org
EPSS
Exploit-DB