Skip to main content

Frappe ERPNext CVE-2026-109657

| EUVDEUVD-2026-98048 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-q3p4-7c35-89wj
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with edit rights
  2. Delivery
    Set record name with script payload
  3. Exploit
    Store unescaped malicious record
  4. Execution
    Colleague opens affected page
  5. Impact
    Script executes in victim browser session

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

The attacker must be an authenticated ERPNext user holding edit (write) rights on a document type, allowing them to set a record's name field to a script payload that is rendered without HTML escaping. Exploitation further requires that a second user (a colleague) subsequently opens the page displaying that record name (UI:P), at which point the script runs in the victim's session. Limiting factors: no anonymous/unauthenticated path (edit rights required), reliance on victim interaction to trigger the payload, and impact confined to the browser session rather than the ERPNext server itself. Fixed in version 16.27.0.

Impact

This is a medium-severity, authenticated stored XSS (CWE-79) in Frappe ERPNext 16.x before 16.27.0, and the available signals converge on a genuine-but-limited priority rather than an urgent emergency. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) confirms network reach and low complexity but requires PR:L - the attacker must already hold edit rights on records - and UI:P, meaning a victim colleague must open the affected page. Impact is scoped to the subsequent system (the victim's browser session): SC:L/SI:L with VC/VI/VA:N on the vulnerable server itself, consistent with script execution in another user's context rather than direct server compromise. No EPSS score, KEV listing, or POC was provided in the input: exploitation status is 'no public exploit identified at time of analysis.' The authenticated precondition (edit rights) substantially lowers real-world risk since it presumes an insider or a compromised/over-privileged account, making this most relevant as a privilege-escalation or lateral-movement primitive within an ERP tenant rather than a mass-exploitable external flaw. No signals conflict; the main caveat is simply the absence of exploitation-probability data (EPSS/KEV/POC all unknown).

Exploit ScenarioDerived

A low-privileged ERPNext user who holds edit rights on a document type creates or renames a record so its name contains a malicious script payload. When a colleague - potentially an administrator - later opens that record's page, the unescaped record name renders and the script executes in their authenticated session, enabling session actions or data theft in the victim's browser context. No public exploit code was identified in the provided 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 16.x before 16.27.0 allows an authenticated user who holds edit (write) rights on a document type to set a record's name field to a script payload that the application later renders without HTML escaping. The script executes in the browser of any colleague who subsequently opens the affected record page, enabling session-context actions such as data theft or UI manipulation within that victim's ERPNext session. No public exploit code or confirmed active exploitation was identified at time of analysis, and the vendor has released a fix in version 16.27.0, so this is a genuine but limited medium-severity issue rather than an urgent emergency.

RemediationAI

Upgrade to Frappe ERPNext 16.27.0 or later, which is the vendor-released patch for this issue; validate the update against the advisory at https://github.com/frappe/erpnext/security/advisories/GHSA-mvr5-2j8r-53p4 before wide deployment. If immediate upgrade is not possible, reduce exposure by tightening role and permission assignments so that edit (write) rights over document types are limited to a small, trusted set of users, recognizing that this restricts legitimate workflows and does not eliminate the flaw for those privileged accounts. Enforcing a restrictive Content-Security-Policy that disallows inline and third-party script on ERPNext pages provides defense in depth, though it can break legitimate front-end functionality and requires testing. Additional compensating controls include reviewing existing record names for injected markup and re-validating user-supplied naming input, plus monitoring for unusual document name values; these measures lower the chance of a payload reaching a victim but are not substitutes for applying the 16.27.0 fix.

Affected VersionsENISA

ERPNext 16.0.0-beta.1 <16.27.0

Affected Packages

euvd erpnext fix: 16.27.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 stored (persistent) cross-site scripting condition mapped to CWE-79, Improper Neutralization of Input During Web Page Generation. ERPNext, built on the Frappe framework, uses DocType record names as identifiers that are frequently surfaced in page titles, breadcrumbs, links, and list views; the affected code path emits a user-controllable record name into HTML without output encoding, so markup and script tags stored in that name field are interpreted by the browser rather than displayed as text. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) and the independent CVSS 3.1 assessment (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) both agree the attack is network-reachable but requires low-privilege authenticated access and victim interaction, with scope change because the payload executes in a different user's browser security context. The only CPE supplied, cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:*, identifies the ERPNext application itself, and no additional CPEs indicate a separate affected library or component.

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

Requires authenticated edit rights (PR:L) and victim opening the page (UI:R); stored script executes in another user's browser so scope changes (S:C) with limited C/I impact and 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: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 16.x before 16.27.0 contains a stored cross-site scripting vulnerability that allows users with edit rights to inject script through a record name rendered without escaping. Attackers can set a malicious record name so the script runs in the browser of any colleague who opens the page.

Threat Intelligence Overview

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

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