Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliveryStore XSS payload in record field
-
ExploitPrivileged user opens affected page
-
ExecutionPayload executes in victim browser
-
ImpactHijack session for account takeover
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 an authenticated low-privilege ERPNext account (PR:L) with the ability to create or edit a record whose field is rendered into an HTML attribute context without escaping. The payload is inert until a higher-privileged user passively opens the affected page (UI:P) - this victim interaction is the primary limiting factor, as the attacker cannot self-trigger execution. Affected deployments are ERPNext before 15.119.0 and 16.x before 16.31.0; patched versions are not vulnerable. There is no indication the flaw depends on a non-default configuration - it stems from the default field-rendering behavior. |
| Impact | This is a credible, actionable priority for organizations running ERPNext, though not an emergency. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H) scores 8.5 (High): network-reachable, low attack complexity, but it requires an attacker to already hold a low-privilege authenticated account (PR:L) and requires passive victim interaction (UI:P) - a privileged user must open the affected page for the stored payload to fire. No EPSS score was provided in the input, so exploitation-probability modeling cannot be performed. The CVE is NOT listed in CISA KEV and no public exploit or POC is indicated in the references (only vendor/VulnCheck advisories), so there is no evidence of active exploitation. No SSVC decision data was supplied. The signals are internally consistent - a stored XSS leading to account takeover genuinely warrants High, but the dual gating of PR:L plus UI:P means exploitation depends on an insider/low-trust account and a privileged user viewing attacker-controlled data, which moderates real-world urgency relative to an unauthenticated RCE of the same score. |
| Exploit ScenarioDerived | An attacker with a low-privilege ERPNext account stores a malicious script inside a record field (e.g. a text field that is later rendered into an HTML attribute without escaping). When an administrator or other privileged user opens the page containing that record, the payload executes in their browser session, letting the attacker hijack the session and take over the privileged account. No public POC or exploit code is identified at time of analysis. |
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 allows an authenticated low-privilege user to plant a malicious payload in a record field that is rendered into an HTML attribute context without escaping; the payload executes in the browser of any higher-privileged user who opens the affected page, which can lead to account takeover of that privileged session. Affected deployments are ERPNext before 15.119.0 and 16.x before 16.31.0, with patched releases 15.119.0 and 16.31.0 addressing the flaw. Exploitation requires an authenticated low-privilege account and depends on a victim with greater privileges passively opening the page, which is the primary limiting factor; there is no CISA KEV listing and no public exploit code identified at time of analysis, and no EPSS score was provided, so this should be treated as a credible, actionable priority rather than an emergency.
RemediationAI
Upgrade to a fixed release: ERPNext 15.119.0 or later on the 15.x branch, or 16.31.0 or later on the 16.x branch; vendor-released patch versions are 15.119.0 and 16.31.0, as documented in GitHub advisory GHSA-8pr6-r75h-h8xx (https://github.com/frappe/erpnext/security/advisories/GHSA-8pr6-r75h-h8xx) and the VulnCheck advisory (https://www.vulncheck.com/advisories/frappe-erpnext-before-15.119.0-stored-xss-leading-to-account-takeover). Until the upgrade can be staged, the most effective compensating control is to constrain who can create or edit the record types that render fields into attribute contexts: remove or narrow the relevant create/write role permissions so only trusted administrative users hold them, accepting that this reduces the self-service capability of normal staff. A second option is to apply a Content Security Policy that disallows inline script and restricts script-src to trusted origins for the ERPNext web tier, which will block execution of many injected payloads but carries a real risk of breaking legitimate front-end behavior and requires testing before rollout. Reviewing and escaping field values at render time - or forcing quoting/encoding of the affected attribute context - is the durable code-side fix and should be tracked against the upstream commit. Finally, monitoring and search of existing records for suspicious attribute-breaking characters (quotes, angle brackets, javascript: schemes, event-handler keywords) helps identify already-persisted payloads that would remain dangerous even after the application code is patched; deleting or sanitizing those records is necessary because the version upgrade fixes future rendering, not the stored content. Note that no CISA KEV listing or public exploit code has been identified at time of analysis, so patching should be scheduled through normal risk-based change management rather than emergency response.
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 CWE-79 improper neutralization of input during web page generation, specifically a stored (persistent) XSS in which user-controlled record fields are written into an HTML attribute context without output encoding. Attribute contexts are more permissive than HTML text nodes: if a value is placed inside an unquoted attribute, whitespace or quote characters can terminate the attribute and allow injection of new attributes such as event handlers (for example onmouseover/onfocus), and even in quoted attributes a value that is placed into a URL-bearing attribute (href, src, formaction, style) can carry a javascript: or similar scheme payload. Because the malicious content is persisted in the ERPNext record store rather than reflected in a single request, it is executed on every subsequent render of the affected page for each viewer. ERPNext is built on the Frappe framework, a Python/JavaScript stack that drives server-rendered pages from DocType metadata and templating; the vulnerability arises from default field-rendering behavior rather than a non-default configuration, and the provided CPE (cpe:2.3:a:frappe:erpnext) confirms the affected component is ERPNext itself. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N) and the independent CVSS 3.1 assessment (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N) both agree on network reachability, low privileges, victim interaction, and high confidentiality and integrity impact, with the 3.1 assessment assigning changed scope because the injected script acts within the privileged victim's session rather than the attacker's own privileges.
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
Low-privilege authenticated attacker stores the payload (PR:L); execution needs a privileged victim to open the page (UI:R); code runs in the victim's browser context (S:C) enabling account takeover (C:H/I:H), with no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Frappe ERPNext before 15.119.0 and 16.x before 16.31.0 contains a stored cross-site scripting vulnerability because record fields are rendered into an HTML attribute context without escaping. A low-privilege user can store a malicious payload in a record field that executes in the browser of any privileged user who opens the affected page, enabling account takeover.
Technical POC Analysis
Evidence note: the only supplied artifact is the GitHub advisory text.
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 contains a high-severity security flaw that allows a user with limited access to take over the accounts of more privileged users, effectively compromising administrative sessions. This could lead to unauthorized access to sensitive financial, HR, and operational data, as well as disruption of critical business processes. Organizations running unpatched versions of ERPNext should act promptly to mitigate the risk; while no public exploit identified at time of analysis, the potential for significant impact remains.
Apply vendor patch.
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-98044
GHSA-g9jx-m3gp-q3jv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB