Skip to main content

Frappe ERPNext EUVDEUVD-2026-98061

| CVE-2026-109670 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-q4x9-8g7q-4mg9
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain item-master write access
  2. Delivery
    Store script payload in record name
  3. Exploit
    Operator opens affected page
  4. Execution
    Script executes in operator browser
  5. Impact
    Hijack 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 (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

ERPNext 0 <15.110.0
ERPNext 16.0.0-beta.1 <16.21.0

Affected Packages

euvd erpnext fix: 15.110.0, 16.21.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

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

Vendor (VulnCheck) PRIMARY 5.1 MEDIUM
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
vuln.today AI 5.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/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
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 13, 2026 - 02:16 EUVD

DescriptionCVE.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

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

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
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.

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-66438 HIGH POC
8.8 Dec 15

Authenticated attackers with permission to create or modify Print Format documents in Frappe ERPNext through 15.89.0 can

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-2025-66434 HIGH POC
8.8 Dec 15

Authenticated server-side template injection in Frappe ERPNext through 15.89.0 allows users with privileges to configure

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-2023-54345 HIGH POC
8.7 May 05

Frappe Framework ERPNext 13.4.0 contains a sandbox escape vulnerability in RestrictedPython that allows authenticated us

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