Skip to main content

Frappe ERPNext CVE-2026-109612

| EUVDEUVD-2026-98006 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-vv7g-r4vw-8r7p
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 record-creating user
  2. Delivery
    Store crafted record name with script payload
  3. Exploit
    Victim opens vulnerable report view
  4. Execution
    Unescaped name interpolated into markup
  5. Persist
    Script executes in victim session
  6. Impact
    Hijack session / exfiltrate ERP data

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 ERPNext account with permission to create records (PR:L), so it is not remote-unauthenticated; the attacker stores a malicious payload in a record's name field. Execution is further gated on a second user opening the specific report view that interpolates stored record names into markup without escaping (UI:P) - the payload lies dormant until then. Limiting factors: the attacker needs valid credentials and create-record rights, impact scales with the privilege of whichever user opens the report, and only the vulnerable report view path is affected. Affected deployments are ERPNext before 15.120.0 and 16.x before 16.33.0; patched versions remove the exposure.

Impact

This is a credible, moderately-high priority issue rather than an inflated high-CVSS score. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H) correctly reflects a stored XSS: network-reachable, low complexity, but gated by PR:L (the attacker must be an authenticated user permitted to create records) and UI:P (a victim must later open the affected report). The VC:H/VI:H rating is justified because script executing in a victim's ERPNext session - especially an administrator or finance user - can drive session hijacking, data exfiltration, and record manipulation across the ERP. No EPSS score, SSVC decision, KEV listing, or POC is present in the supplied data, so no public exploit identified at time of analysis and there is no evidence of active exploitation; the real-world urgency therefore rests on the plausibility of an insider or low-privilege account being used to plant the payload. Signals are internally consistent (no CVSS-vs-description conflict), but the absence of EPSS/KEV/POC means exploitation likelihood cannot be quantified from this input - treat the risk as 'needs patching promptly in multi-tenant or large-user ERPNext deployments' rather than 'emergency internet-facing RCE.'

Exploit ScenarioDerived

A low-privileged but authenticated ERPNext user (or a compromised/rogue account) creates a record whose name field contains a crafted JavaScript payload. When a higher-privileged user such as an administrator later opens the report view that interpolates that record name into markup without escaping, the script executes in the victim's authenticated session, enabling session token theft or actions performed as that user. No public exploit code is identified in the provided data, and successful attack requires the victim to open the affected report (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 allows any authenticated user with permission to create records to plant a crafted record name that is later rendered unescaped in a report view, executing arbitrary script in the browser session of whichever user opens that report. Exploitation is not remote-unauthenticated: it requires valid credentials plus create-record rights (CVSS 4.0 PR:L) and is further gated on a second user subsequently opening the vulnerable report (UI:P), meaning the payload lies dormant until then. Impact spans the confidentiality and integrity of the affected session and can be severe when a high-privileged administrator views the report; no public exploit code has been identified at time of analysis and there is no CISA KEV listing, though the issue is rated 8.5 and warrants prompt patching.

RemediationAI

Vendor-released patch: upgrade to ERPNext 15.120.0 or 16.33.0 (the first fixed release on each maintained branch), per the GitHub security advisory GHSA-f99r-gp2w-xghj; applying the vendor fix is the only remediation that eliminates the unescaped interpolation in the report view. Where immediate upgrade is not possible, reduce exposure by tightening who can create records whose names are rendered in reports - restrict DocType create/write permissions to trusted roles and audit existing record names for HTML or script fragments, accepting that this is a permission-hygiene measure rather than a code fix and that it may disrupt legitimate data entry. A Content-Security-Policy that disallows inline and third-party script execution from ERPNext responses can blunt payload execution, but it will break legitimate inline scripts and requires careful, tested tuning. Because the payload is stored and dormant, cleaning already-persisted malicious record names is also necessary after patching; the primary risk is a privileged user opening the affected report before remediation, so prioritize the upgrade and record-name audit accordingly.

Affected VersionsENISA

ERPNext 16.0.0-beta.1 <16.33.0
ERPNext 0 <15.120.0

Affected Packages

euvd erpnext fix: 15.120.0, 16.33.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 the flagship open-source ERP built on the Frappe framework, whose server-side templating and report rendering engine composes HTML from stored document fields such as record names. In the vulnerable report view, those stored names are interpolated into server-rendered markup without HTML entity encoding, so any attacker-controlled record name is treated as trusted markup rather than data - the classic stored/persistent variant of CWE-79 (Improper Neutralization of Input During Web Page Generation). The CPE cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:* carries wildcarded version fields, so version-specific scoping must come from the vendor advisory rather than the CPE string. The independent assessment maps the flaw to CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N, confirming a network-reachable, low-complexity attack that requires authenticated low privileges and user interaction, with changed scope because the script executes in the victim's session context rather than the attacker's - a direct consequence of storing and later replaying untrusted markup server-side.

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 low-priv attacker stores payload (PR:L), victim must open the report (UI:R), and XSS executing in another user's session crosses a trust boundary (S:C) with high confidentiality/integrity 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:21 cve.org
HIGH 8.5

DescriptionCVE.org

Frappe ERPNext before 15.120.0 and 16.x before 16.33.0 contains a stored cross-site scripting vulnerability in a report view that interpolates stored record names into markup without escaping. Authenticated users able to create records can store crafted record names that execute script in the session of any user who later opens the report.

Executive ViewAI

Why It Matters

A stored cross-site scripting flaw in Frappe ERPNext (CVE-2026-109612, CVSS 8.5) lets any authenticated user who can create records plant malicious content that executes in the browser of a colleague who later opens an affected report. Because ERPNext reports are routinely viewed by administrators and finance staff, a successful attack could compromise a privileged session and expose or alter sensitive business data. No vendor patch or public exploit code is currently available, so risk must be managed through access restrictions and monitoring until a fix ships.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: enforce least-privilege role assignments to limit who can create records and view reports, apply output encoding or sanitization in report templates where possible, deploy a restrictive content security policy, add WAF rules targeting script payloads in record names, shorten privileged session lifetimes with re-authentication, and monitor report-view and record-creation activity for suspicious entries.

Threat Intelligence Overview

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