Skip to main content

Frappe ERPNext CVE-2026-109604

| EUVDEUVD-2026-98001 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-frw3-f8vj-wxg9
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 as low-privilege ERPNext user
  2. Delivery
    Create record with script payload in name
  3. Exploit
    Victim opens vulnerable tool view
  4. Execution
    Stored markup interpolated unescaped
  5. Persist
    Script executes in victim session
  6. Impact
    Hijack session / 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 the affected record type in Frappe ERPNext (versions before 15.112.0, or 16.x before 16.23.0), so exploitation is limited to insiders or attackers who have already obtained valid low-privilege credentials. The attacker must set a malicious record name, and the payload only executes when a second user subsequently opens the specific vulnerable tool view that interpolates stored record names into markup without escaping - meaning victim interaction is mandatory and no execution occurs until the tool is opened. Limiting factors: no unauthenticated path, required create-permission, and dependence on a victim navigating to the affected tool.

Impact

This is a moderate-priority, authentication-gated stored XSS (CWE-79) rather than a drop-everything emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H) scores 8.5 and signals network reach with low attacker privilege, but two factors temper real-world urgency: PR:L means the attacker must already be an authenticated ERPNext user who can create the affected records, and UI:P means exploitation only fires when another user passively opens the affected tool view. No EPSS score, CISA KEV listing, or public POC is present in the provided data, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The VC:H/VI:H impact rating in the input appears aggressive for a reflected-in-session XSS; stored XSS typically yields partial confidentiality/integrity loss scoped to the victim's authenticated session rather than full system compromise, so defenders should treat the 8.5 as an upper bound. Net: a credible insider or low-privilege account-takeover vector worth patching in normal cycles, not a widely-weaponized remote-unauth flaw.

Exploit ScenarioDerived

A low-privileged but authenticated ERPNext user creates a record (e.g., a document whose name is attacker-controlled) and embeds a malicious script payload in its name field. When an administrator or other user later opens the vulnerable tool view, the unescaped record name is interpolated into the page markup and the script executes in that victim's authenticated session, enabling session theft or actions on their behalf. No public exploit code was identified in the provided data, and success depends on a victim opening the affected tool (UI:P).

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 versions before 15.112.0 and 16.x before 16.23.0 allows an authenticated user who can create the affected record type to embed script in a record name, which is then interpolated unescaped into markup by a tool view and executed in the browser session of any user who later opens that tool. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) and our independent CVSS 3.1 assessment (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) agree that exploitation is authentication-gated at low privileges and depends on victim interaction, making this a moderate-priority, insider-reachable issue rather than an unauthenticated emergency; no public exploit code and no confirmed active exploitation were identified at time of analysis. Because the payload persists in stored data, a single malicious record name can affect every user who subsequently visits the vulnerable tool view, so scope is limited to session-level script execution in the victim's context rather than direct server compromise.

RemediationAI

Upgrade to the vendor-fixed releases: ERPNext 15.112.0 on the 15.x branch or 16.23.0 on the 16.x branch, following the guidance in the GitHub security advisory GHSA-734c-hv9r-mg2c and the VulnCheck advisory (links above). If immediate upgrade is not possible, reduce exposure by tightening who can create the affected record types - applying least privilege to doctype create permissions removes the attacker's ability to plant a malicious name, at the cost of restricting legitimate data-entry workflows - and restrict access to the specific vulnerable tool view to trusted roles; additionally, review existing record names for injected markup and clean or rename suspicious records before patching, since remediation of the software does not remove already-stored payloads. A content security policy on the ERPNext front end can blunt script execution as a temporary compensating control, but may break legitimate inline scripts and should be tested in a staging environment first. The official vendor-released patch version is 15.112.0 / 16.23.0; no vendor-released patch exists for the deprecated branches below those versions, so affected deployments on those lines should be upgraded to a supported release rather than relying on a backport.

Affected VersionsENISA

ERPNext 0 <15.112.0
ERPNext 16.0.0-beta.1 <16.23.0

Affected Packages

euvd erpnext fix: 15.112.0, 16.23.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 root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the stored/persistent variant: a tool view within ERPNext renders stored record names directly into HTML markup without output encoding or contextual escaping. ERPNext is a Frappe Framework-based open-source ERP/CRM platform whose doctype records (with user-supplied names) are commonly displayed in list and tool views, so the vulnerable sink is a presentation-layer template rather than a data-layer or authentication component. The CVSS 4.0 vector reports AV:N/AC:L/AT:N/PR:L/UI:P with high confidentiality and integrity impact confined to the vulnerable system (VC:H/VI:H, VA:N, SC:N/SI:N/SA:N), consistent with script execution obtaining read/write access to the victim's session within ERPNext; our independent CVSS 3.1 view scores scope as changed (S:C) with low C/I impact, reflecting that injected script runs in the victim's browser origin. The affected CPE is cpe:2.3:a:frappe:erpnext for the ERPNext product, with the vulnerable version ranges being all releases before 15.112.0 and 16.x releases before 16.23.0.

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 5.4 MEDIUM

Authenticated record creation forces PR:L; victim must open the tool (UI:R); script crosses into the victim's session (S:C) with partial confidentiality/integrity impact typical of stored XSS, no availability effect.

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:L/VI:L/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
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:21 cve.org
HIGH 8.5

DescriptionCVE.org

Frappe ERPNext before 15.112.0 and 16.x before 16.23.0 contains a stored cross-site scripting vulnerability because a tool view interpolates stored record names into markup without escaping. An authenticated user able to create such records can give them malicious names, executing script in the session of any user who later opens that tool.

Executive ViewAI

Why It Matters

Frappe ERPNext, a widely used open-source ERP platform, contains a stored cross-site scripting vulnerability (CVE-2026-109604) that allows an authenticated low-privileged user to inject persistent malicious script into record names, which then executes in the browser sessions of any user who opens the affected tool view. This insider-reachable issue requires no public exploit and is not actively exploited, but it can lead to session hijacking, data theft, or lateral movement within the ERP environment, affecting all users who interact with the compromised records. Leadership should prioritize remediation because the vulnerability persists in stored data and can silently compromise multiple user accounts, undermining trust in the ERP system's data integrity and confidentiality.

Business Impact: High
Compensating Controls

No vendor patch available; implement input sanitization and output encoding for record names, restrict record creation permissions to trusted users, deploy Content Security Policy (CSP), and monitor for injected script patterns.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
popular open-source ERP, common in SMBs but not ubiquitous infrastructure
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 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