Skip to main content

Frappe EUVDEUVD-2026-98165

| CVE-2026-109602 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-h2g2-w3jw-9f6h
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 as low-privileged Frappe user
  2. Delivery
    Store XSS payload in chart filter value
  3. Exploit
    Victim opens affected dashboard chart
  4. Execution
    jQuery renders payload as rich text
  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

Exploitation requires an authenticated account with permission to create or edit a dashboard chart and set its filter values - the exact vulnerable feature is the dashboard chart filter input, which jQuery renders as rich text instead of escaping it. Execution additionally requires a second user to open and view the attacker-controlled dashboard chart (UI:P / UI:R), so the payload does not fire without victim interaction. Limiting factors: the attacker must already hold valid credentials with chart-editing rights, impact is confined to the viewing user's browser session (no direct server compromise), and the affected versions are Frappe before 15.118.0 and 16.x before 16.31.0, so patched or non-dashboard deployments are not exposed.

Impact

This is a medium-severity stored XSS (CWE-79) with a CVSS 4.0 base score of 5.1. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) indicates a network-reachable, low-complexity attack that nonetheless requires the attacker to be authenticated (PR:L) and requires a victim to passively view the affected dashboard chart (UI:P). Impact is constrained: the vulnerable-system confidentiality/integrity/availability are all None (VC:N/VI:N/VA:N) and only subsequent-system confidentiality and integrity are Low (SC:L/SI:L/SA:N), reflecting script execution in a victim's browser session rather than compromise of the Frappe server itself. No EPSS score, KEV listing, SSVC decision, or POC indicator was supplied in the input; the issue is not on CISA KEV and no public exploit was referenced, so there is no public exploit identified at time of analysis. The signals are internally consistent - no network-vs-local or auth contradictions - and point to a real but moderate risk: it depends on a malicious or compromised authenticated account and social/workflow conditions (a victim viewing the attacker-controlled chart), making it more of a privilege-escalation / session-abuse concern in multi-tenant or multi-user deployments than a mass-exploitable critical flaw. EPSS data is missing, so widespread-exploitation probability cannot be quantified from the input.

Exploit ScenarioDerived

An authenticated low-privilege Frappe user creates or edits a dashboard chart and enters a malicious payload as a filter value, which jQuery renders as rich text rather than escaping it. When a higher-privileged user (e.g. an administrator) later opens that dashboard chart, the stored script executes in their browser session, enabling session-context actions or data theft. No public exploit code was referenced 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 (XSS) in Frappe versions prior to 15.118.0 and 16.x before 16.31.0 allows authenticated attackers with dashboard chart editing privileges to inject malicious filter values that execute in the browsers of users who view the affected chart. The vulnerability arises because jQuery renders filter values as rich text instead of escaping them. Exploitation requires the victim to open the dashboard chart, and no public exploit code has been identified at time of analysis. This medium-severity issue (CVSS 5.1) can lead to session hijacking or other client-side attacks for the viewing user.

RemediationAI

Upgrade to Frappe version 15.118.0 or 16.31.0, which contain the fix for this stored XSS vulnerability. As a workaround, restrict the ability to create or edit dashboard charts to trusted users only, or disable the dashboard chart filter feature if it is not essential, though this reduces functionality. Additionally, ensure that users with chart-editing permissions are aware of the risk and that browser-based protections such as Content Security Policy (CSP) are in place to mitigate XSS impact. For more details, consult the vendor advisory at https://github.com/frappe/frappe/security/advisories/GHSA-hxfh-hh23-fvch.

Affected VersionsENISA

frappe 16.0.0-beta.1 <16.31.0
frappe 0 <15.118.0

Affected Packages

euvd frappe fix: 15.118.0, 16.31.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 vulnerability is a stored cross-site scripting (CWE-79) in the Frappe framework's dashboard chart component. Dashboard charts allow users to apply filters, and the filter values are rendered using jQuery in a way that treats them as rich text rather than sanitizing them. An authenticated attacker with permission to create or edit a dashboard chart can store a malicious payload in a filter value, which is then executed when another user views the chart. This requires user interaction (the victim must open the dashboard chart) and is limited to the context of the victim's browser session. The affected products are identified by CPE cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:* and include all versions of Frappe before 15.118.0 and 16.x versions before 16.31.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 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

Authenticated attacker stores the payload (PR:L), a victim must view the chart (UI:R), and script runs in the victim's browser outside the server's authority (S:C) with limited C/I impact and no availability loss.

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 before 15.118.0 and 16.x before 16.31.0 contains a stored cross-site scripting vulnerability in dashboard chart filters because jQuery renders entered filter values as rich text. Authenticated attackers can store malicious filter values that execute scripts in the browsers of users who view the dashboard chart.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular open-source low-code/ERP framework (ERPNext), common in SMEs, not ubiquitous
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
None
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.

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