Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege portal user
-
DeliveryStore XSS payload in profile field
-
ExploitAdmin views portal page
-
ExecutionScript executes in admin browser session
-
ImpactHijack admin session / takeover account
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 | Exploitation requires: (1) an authenticated low-privilege account with access to edit the vulnerable profile field - ERPNext deployments that enable self-service portal/website user accounts (customers, suppliers) are exposed, while instances restricting account creation are far less so; and (2) user interaction from a victim - specifically an administrator must view the portal page that renders the stored field (UI:P). The flaw is in a profile field rendered without output escaping into portal pages, so it is not exploitable against default configs that do not expose portal account self-registration. Limiting factors: the required low-privilege authentication and the dependence on an admin actually viewing the poisoned page bound real-world risk below that of a pre-auth, zero-interaction XSS. |
| Impact | This is a credible, moderately high-priority vulnerability but not an emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/PR:L/UI:P/VC:H/VI:H) rates it 8.5 (High): network-reachable, low attack complexity, but it requires an authenticated low-privilege account (PR:L) AND passive user interaction (UI:P) - specifically an administrator must view the page where the payload is stored. These two gating factors meaningfully reduce real-world exploitability versus a pre-auth no-interaction flaw. No EPSS score was provided, so exploitation probability cannot be quantified. The CVE is NOT in CISA KEV and no public POC is referenced, so this is 'no public exploit identified at time of analysis' - the high score reflects potential impact (full admin account takeover via stored XSS, hence VC:H/VI:H) rather than confirmed active exploitation. The signals are internally consistent: a stored XSS leading to privileged account takeover legitimately warrants a High rating, but absence of KEV/POC/EPSS data means prioritization should be driven by exposure (does your ERPNext instance allow low-privilege self-service portal accounts?) rather than by evidence of mass exploitation. Scope is unchanged (SC/SI/SA:N) because impact stays within the ERPNext application trust boundary. |
| Exploit ScenarioDerived | A low-privilege user (e.g. a customer or supplier with a portal account) edits a profile field and injects a malicious script instead of normal text. The payload is stored and later rendered unescaped when an administrator opens the portal page displaying that profile, executing attacker JavaScript in the admin's authenticated session and enabling session/account takeover. No public exploit code is referenced, but stored XSS of this kind is trivially weaponizable once the vulnerable field is known. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Stored cross-site scripting in Frappe ERPNext (before 15.113.0 and 16.x before 16.24.0) allows an authenticated low-privilege user to persist malicious script in a profile field that is rendered without escaping into portal pages; the payload executes in the browser of any administrator viewing those pages, enabling administrator account takeover. Exploitation requires a low-privilege account with access to edit the vulnerable profile field - realistic where ERPNext exposes self-service portal/website accounts for customers or suppliers - plus administrator interaction to load the poisoned page, which bounds risk below that of a pre-authentication, zero-interaction XSS. No public exploit code was identified at time of analysis.
RemediationAI
Vendor-released patches are available: upgrade to ERPNext 15.113.0 on the 15.x branch or 16.24.0 on the 16.x branch, per GitHub advisory GHSA-rg9g-c26v-cw27 (https://github.com/frappe/erpnext/security/advisories/GHSA-rg9g-c26v-cw27) and the VulnCheck advisory (https://www.vulncheck.com/advisories/frappe-erpnext-before-15.113.0-stored-xss-via-profile-field-in-portal-pages). If immediate upgrade is not possible, the highest-value compensating control is to disable or tightly gate portal/website self-registration and low-privilege profile editing so untrusted accounts cannot write the vulnerable field, which removes the injection primitive entirely at the cost of blocking legitimate customer or supplier self-service onboarding. Secondarily, restrict who can administer portal pages and review administrator activity for unexpected page loads, since exploitation requires an admin to view the poisoned page; this is detection rather than prevention and does not remove stored payloads. Applying the framework escaping filter to the affected profile field output in the Jinja template can be a local stopgap, but such template-level fixes risk being overwritten on upgrade and should not be treated as a substitute for patching. After patching, audit the profile field for pre-existing stored payloads and purge or re-save affected records, and force a session and credential reset for any administrator who viewed a suspect page.
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
ERPNext is the flagship ERP application built on the Frappe framework, a Python/JavaScript full-stack web framework whose portal and website pages are rendered server-side from Jinja templates. CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. cross-site scripting) manifests here as a stored XSS: a profile field is written by a low-privilege user and later interpolated into portal page HTML without the Frappe/Jinja escaping filter applied, so the browser parses attacker-supplied markup as script. The provided CPE cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:* is version-agnostic, so affectedness must be determined from the version ranges in the description - all releases before 15.113.0 on the 15.x line and all 16.x releases before 16.24.0. Because the payload is stored server-side, it persists and fires on every administrator page view, giving the attacker a persistent path to admin session or credential theft; the assessed CVSS:3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N) reflects network reachability, low privileges, required victim interaction, and scope change typical of XSS that reaches a privileged administrative context.
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:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-reachable stored XSS needing a low-priv account (PR:L) and an admin viewing the page (UI:R); S:C because injected script executes in the admin's browser context beyond the attacker's authorization scope.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Frappe ERPNext before 15.113.0 and 16.x before 16.24.0 contains a stored cross-site scripting vulnerability in a profile field that is rendered without escaping into portal pages. Low-privilege attackers can store malicious script in the field that executes in the browser of any administrator viewing those pages, enabling administrator account takeover.
Technical POC Analysis
Evidence base: GitHub advisory GHSA-rg9g-c26v-cw27 (frappe/erpnext), published 2026-08-13, credits diptanilsaha.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Frappe ERPNext, the ERP platform that likely underpins finance, inventory, HR, and customer/supplier workflows, contains a stored cross-site scripting flaw that lets a low-privilege portal account plant malicious code that runs in an administrator's browser - enabling full administrative takeover of the ERP environment. Organizations that expose ERPNext self-service portal or website accounts to customers, suppliers, or other external parties are most exposed, because those accounts provide the foothold the flaw requires. Because the payload executes with administrator privileges once a single admin opens the poisoned page, the realistic worst case is unauthorized access to business-critical ERP data, fraudulent transactions, and lateral movement into connected systems; leadership should treat this as a material risk to data integrity and financial controls rather than a routine web-application bug.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict or disable low-privilege editing of the vulnerable profile field, suspend external self-service portal/supplier account provisioning where not business-critical, sanitize or HTML-encode stored profile content, apply a Content-Security-Policy and WAF rules that block inline script on portal pages, require MFA and least privilege for administrator accounts, and monitor audit logs for anomalous profile changes or administrator page loads.
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-98062
GHSA-24f3-935v-8wmm
NVD
CVE.org
EPSS
Exploit-DB