Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain item-master write access
-
DeliveryStore script payload in record name
-
ExploitOperator opens affected page
-
ExecutionScript executes in operator browser
-
ImpactHijack operator session/actions
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 | Requires an authenticated account with write access to item master data in ERPNext in order to store a malicious script in a record name (maps to PR:L). Exploitation does not fire until a victim operator subsequently opens the page that renders the unescaped record name (UI:P / passive interaction), so there is a dependency on a second, typically higher-privileged user viewing the affected item. Limiting factors: this is not remote-unauthenticated - the attacker must already hold item-write permissions (insider or compromised account), and impact is confined to the viewing operator's browser session rather than the ERPNext server. Affected: ERPNext before 15.110.0 and 16.x before 16.21.0; upgrading to 15.110.0 / 16.21.0 removes the condition. |
| Impact | This is a moderate-severity stored XSS (CWE-79) with a CVSS 4.0 base score of 5.1 (Medium), and the signals align consistently rather than conflicting. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) shows the weakness is network-reachable and low-complexity but gated by two real limiters: the attacker needs PR:L - authenticated write access to item master data - and exploitation requires passive user interaction (UI:P), namely an operator later opening the affected page. Impact is confined to the subsequent (victim browser) system with SC:L/SI:L and no impact to the vulnerable system itself (VC:N/VI:N/VA:N), reflecting a self-/stored-XSS that escalates only against other users. No EPSS score, CISA KEV listing, or public POC is present in the supplied intelligence, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Net assessment: this is a legitimate but not urgent fix - a privileged-insider or compromised-low-privilege-account vector against an ERP operator's session, not a mass-exploitable unauthenticated flaw. The low CVSS and the PR:L + UI:P gates argue against emergency prioritization; patch on a normal cycle unless the ERPNext instance grants item-write access broadly to untrusted users. |
| Exploit ScenarioDerived | A user with write access to item master data (e.g., a low-privileged catalog editor or a compromised staff account) creates or edits an item and embeds a malicious script payload directly in the record name. When a higher-privileged operator later opens the page that renders that record name without escaping, the script executes in the operator's authenticated browser session, enabling session/action abuse within ERPNext. No public proof-of-concept exploit is identified in the supplied data. |
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 (15.x before 15.110.0 and 16.x before 16.21.0) lets an authenticated user who holds write access to item master data persist JavaScript inside a record name, which is then rendered without escaping and executes in the browser of any operator who opens the affected item page. Exploitation requires an existing account with item-write privileges plus a second user later viewing the poisoned record, so it is an insider- or compromised-account scenario rather than a remote unauthenticated attack, and the impact is confined to the viewing operator's browser session rather than the ERPNext server. Severity is moderate (CVSS 4.0 base 5.1; independent assessment 3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N), no public exploit code and no confirmed active exploitation were identified at time of analysis, and upgrading to 15.110.0 or 16.21.0 removes the condition.
RemediationAI
Vendor-released patch: upgrade ERPNext to 15.110.0 (for the 15.x line) or 16.21.0 (for the 16.x line), which adds output escaping so record names are no longer rendered as raw HTML; details are in the GitHub advisory https://github.com/frappe/erpnext/security/advisories/GHSA-m6x2-278g-pv2g. There is no rename-based workaround, because in Frappe a record's name is its immutable primary key and cannot be edited after creation, so cleansing poisoned records means deleting or re-creating them, which can break linked transactions - plan that data cleanup only under vendor guidance. As compensating controls until patching, tighten the Item Manager / item-write roles so only a small, trusted set of accounts can create or edit item master records (this directly removes the prerequisite permissions and is the highest-value mitigation, at the cost of some operational flexibility), and consider a Content-Security-Policy that disallows inline script for the ERPNext desk origin to blunt payload execution - accepting that this frequently breaks legitimate custom apps and client scripts, so test in staging first. Enforcing HttpOnly and SameSite attributes on ERPNext session cookies reduces the value of a successful payload by limiting straightforward session theft, and auditing item docnames for HTML or script-like characters gives a detection signal for attempted abuse without preventing it. Upgrading to 15.110.0 or 16.21.0 remains the only fix that removes the vulnerability itself.
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
The flaw is a classic CWE-79 improper-neutralization-of-input-during-web-page-generation issue in ERPNext, the ERP application built on the Frappe Framework (Python backend, server-side templating and JS-driven desk UI). In Frappe, every document has a mandatory 'name' attribute that serves as its primary key/docname, and this identifier is reused as display text in list views, breadcrumbs, page titles, link fields, dialogs and generated HTML/Markdown. ERPNext renders that value without context-appropriate output encoding, so an attacker who can create or modify item master records can embed HTML/script payloads in the docname; the CPE cpe:2.3:a:frappe:erpnext confirms the affected component is ERPNext itself as published by Frappe. Because the injected value is stored server-side and re-rendered for every subsequent viewer, the payload survives page reloads and reaches users beyond the original author with no further attacker action. The scope-change signal (S:C in the assessed vector) reflects that code executes in the victim operator's origin/session context - enabling session-token or CSRF-token theft and privileged actions as the victim within ERPNext - while the server-side integrity and availability of the ERP instance remain unaffected. The vulnerable window is closed by the escaping fixes shipped in 15.110.0 and 16.21.0.
Know when Erpnext 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
Attacker needs authenticated item-write access (PR:L) and a victim must open the page (UI:R); stored XSS crosses into the operator's browser (S:C) with limited confidentiality/integrity impact and no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Frappe ERPNext before 15.110.0 and 16.x before 16.21.0 contains a stored cross-site scripting vulnerability caused by record names being rendered without escaping. Attackers with write access to item master data can store malicious script in a record name that executes in the browser of any operator who opens the affected page.
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 attackers with permission to create or modify Print Format documents in Frappe ERPNext through 15.89.0 can
Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A
Authenticated server-side template injection in Frappe ERPNext through 15.89.0 allows users with privileges to configure
An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev
Frappe Framework ERPNext 13.4.0 contains a sandbox escape vulnerability in RestrictedPython that allows authenticated us
EUVD-2026-98061
GHSA-q4x9-8g7q-4mg9
NVD
CVE.org
EPSS
Exploit-DB