Skip to main content

Frappe ERPNext EUVDEUVD-2026-98064

| CVE-2026-109673 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-82qc-4rqg-p3g8
8.5
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to ERPNext with low-privileged account
  2. Delivery
    Inject script payload into a record name
  3. Exploit
    Privileged user opens affected dashboard/tool/portal
  4. Execution
    Script executes in victim browser
  5. Impact
    Steal session token and 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

Requires an authenticated account with permission to create or rename records whose names are later rendered on certain ERPNext dashboards, tools, or portal pages (PR:L). Exploitation is a stored/second-order XSS, so it only triggers when a victim - ideally a privileged user - views the page that renders the unneutralized record name (UI:P/passive interaction), meaning the attacker cannot control exact timing. Limiting factors: a valid low-privilege login is mandatory, the payload only fires against users who open the specific affected views, and installations on versions 15.103.0+ or 16.12.0+ are not vulnerable.

Impact

This is a credible, above-average-priority issue but not an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H) scores 8.5 (High) and is internally consistent with a stored XSS flaw: network-reachable, low complexity, but requiring low-privilege authentication (PR:L) and passive victim interaction (UI:P) - a victim must view an affected dashboard/tool/portal. These two gating factors (authentication plus required victim view) meaningfully lower real-world risk versus an unauthenticated, no-interaction RCE. No EPSS score, KEV listing, or POC was provided, so there is no public exploit identified at time of analysis and no evidence of active exploitation; exploitation probability signals are simply absent rather than contradictory. The highest-value outcome is session/token theft against privileged users, which can escalate to broad data access and modification - so impact is high even though the barrier to entry (a valid account that can name records) is moderate. Net: a real patching priority for internet-facing or multi-tenant ERPNext deployments, but it depends on an attacker already having an authenticated foothold, so it reads as elevated-but-not-critical absent exploitation evidence.

Exploit ScenarioDerived

A low-privileged but authenticated ERPNext user (or a malicious tenant/vendor/customer with portal access) creates or renames a record using a name containing a malicious script payload. When a privileged user - such as a System Manager or Accounts Manager - later opens a dashboard, tool, or portal page that renders that record name without proper neutralization, the script executes in their browser, allowing session token theft and actions performed as the victim. No public exploit code was identified at time of analysis, so this would currently require custom payload development.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 12, 2026

Stored cross-site scripting in Frappe ERPNext allows an authenticated user with permission to create or rename records to plant script payloads in record names that are later rendered without proper neutralization on certain dashboards, tools, and portal pages. Versions before 15.103.0 and 16.x before 16.12.0 are affected; the vulnerability scores CVSS 4.0 8.5 (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N) and the independent assessment rates it a credible, above-average-priority issue rather than an emergency, because a valid low-privilege login is mandatory, the payload only fires when a victim - ideally a privileged user - opens the specific affected view, and the attacker cannot control exact timing. Successful exploitation can read or modify data and steal session tokens from other users' browsers; no public exploit code or confirmed active exploitation (CISA KEV) was identified at time of analysis. Installations running 15.103.0+ or 16.12.0+ are not vulnerable.

RemediationAI

Vendor-released patch: upgrade ERPNext to 15.103.0 (15.x branch) or 16.12.0 (16.x branch) or later, following the vendor advisory at https://github.com/frappe/erpnext/security/advisories/GHSA-r99h-h44m-89m2 and the VulnCheck advisory at https://www.vulncheck.com/advisories/frappe-erpnext-before-16.12.0-stored-xss-via-crafted-record-names. Where immediate upgrade is impractical, reduce the attack surface by tightening Frappe role permissions so that only trusted roles can create or rename records in the DocTypes whose names render on dashboards, tools, and portal pages - accepting that this degrades normal self-service and bulk-import workflows - and by restricting portal/dashboard exposure to authenticated, vetted users; additionally, hunt for and correct any existing stored payloads by scanning record-name values for HTML/script characters and HTML-encoding on output (for example via frappe.utils.escape_html or equivalent context-aware escaping) until the patched release can be deployed. Deploying a strict Content-Security-Policy that forbids inline and untrusted script sources can blunt script execution but requires careful tuning against ERPNext's own front-end assets and should be treated as a compensating control, not a substitute for the upgrade; because the injected payload persists in the database, patching the rendering path alone does not remove previously planted names, so test the affected views after upgrading and after any cleanup.

Affected VersionsENISA

ERPNext 16.0.0-beta.1 <16.12.0
ERPNext 0 <15.103.0

Affected Packages

euvd erpnext fix: 15.103.0, 16.12.0

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 a Python/JavaScript web application built on the Frappe framework, where documents are stored as DocTypes and identified by a 'name' field generated through naming rules. This is a classic stored (second-order) XSS, CWE-79: the record name is persisted in the database and later injected into HTML output on dashboards, tools, and portal pages without output encoding or context-aware escaping, so the browser parses the attacker-supplied markup as script rather than text. The CVSS 4.0 vector 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 confirms a network-reachable, low-complexity attack that requires a low-privileged authenticated account (PR:L) and passive victim interaction (UI:P), with high confidentiality and integrity impact on the vulnerable system but no availability impact and no subsequent-system impact. The independent assessment using CVSS:3.1 (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N) agrees on scope change and high C/I impact, reinforcing that the flaw lives in a rendering path reachable from multiple ERPNext modules rather than in a single isolated endpoint. The CPE cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:* indicates the vulnerability is tracked generically across the ERPNext product line, so version pinning to 15.103.0 or 16.12.0 is the decisive discriminator for exposure.

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

Vendor (VulnCheck) PRIMARY 8.5 HIGH
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
vuln.today AI 8.7 HIGH

Authenticated record creation gives PR:L, victim must view the page so UI:R, stored script runs in the victim's browser context (S:C) enabling token theft and data modification (C:H/I:H), no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 13, 2026 - 02:16 EUVD
CVE Published
Oct 12, 2026 - 22:22 cve.org
HIGH 8.5

DescriptionCVE.org

Frappe ERPNext before 15.103.0 and 16.x before 16.12.0 contains a stored cross-site scripting vulnerability because the names of certain records are not properly neutralized when rendered on some dashboards, tools, and portals. Authenticated attackers can craft malicious record names that execute scripts in other users' browsers, enabling data access, modification, and token theft, especially against privileged users.

Technical POC Analysis

Bug class: CWE-79, stored/persistent cross-site scripting.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Frappe ERPNext, a widely used open-source ERP platform, is affected by a high-severity stored cross-site scripting vulnerability that enables an authenticated low-privilege user to inject malicious scripts into records, potentially compromising sensitive data and user sessions, including those of privileged users. While exploitation requires a valid login and user interaction, and no public exploit has been identified at time of analysis, the potential for data theft and unauthorized access makes timely remediation critical for organizations running affected versions.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
popular open-source ERP, common in SMBs but not ubiquitous infrastructure
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

More in Frappe

View all
CVE-2025-67289 CRITICAL POC
9.6 Dec 22

Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on

CVE-2018-3885 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3884 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3883 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3882 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2025-66440 HIGH POC
8.8 Dec 15

Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database c

CVE-2025-66439 HIGH POC
8.8 Dec 15

SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa

CVE-2025-66437 HIGH POC
8.8 Dec 15

Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A

CVE-2020-6145 HIGH POC
8.8 Aug 10

An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev

CVE-2026-39352 HIGH POC
8.7 May 20

Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie

CVE-2025-10655 HIGH POC
8.6 Dec 09

SQL injection in Frappe HelpDesk 1.14.0 dashboard functionality allows authenticated attackers to execute arbitrary SQL

CVE-2025-52042 HIGH POC
8.2 Oct 01

In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy