Skip to main content

Frappe Framework CVE-2025-71430

| EUVDEUVD-2025-211072 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-q3x5-34r6-7hhv
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain authenticated Frappe account
  2. Delivery
    Set user name to crafted XSS payload
  3. Exploit
    Victim opens leaderboard page
  4. Execution
    Payload executes in victim browser
  5. Impact
    Hijack session or 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

The attacker must hold an authenticated Frappe account capable of setting its own user/display name (PR:L), and a victim must actively navigate to the Frappe leaderboard page for the stored payload to execute (UI:P). The specific vulnerable feature is the leaderboard page, which renders user names without output neutralization. Exploitation is meaningfully amplified on instances that permit self-service account registration and is limited by: the need for a valid account, the requirement that victims view the leaderboard, and the affected version range (Frappe before 14.99.10 and 15.x before 15.91.1) - patched instances (>=14.99.10 or >=15.91.1) are not affected.

Impact

This is a stored (persistent) cross-site scripting flaw (CWE-79) in the Frappe framework's leaderboard page, scored CVSS 4.0 5.1 (MEDIUM). The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N) indicates network-reachable, low-complexity exploitation that requires LOW privileges (PR:L - an authenticated account to set a crafted user name) and passive user interaction (UI:P - a victim must view the leaderboard). The impact is confined to the subsequent system (the victim's browser): no direct confidentiality/integrity/availability impact on the vulnerable server itself (VC/VI/VA:N), with low confidentiality and integrity impact on the browser context (SC:L/SI:L). There is NO CISA KEV listing, NO EPSS score, and NO public PoC referenced in the provided data - so exploitation signals are all negative/absent. The result is a genuine but modest-priority vulnerability: real because exploitation prerequisites are low (any authenticated user can plant the payload) and the payload fires automatically for every leaderboard viewer, but limited because it requires an authenticated foothold, victim interaction, and yields only in-browser script execution rather than server compromise. EPSS and KEV data are missing rather than low, so widespread-exploitation likelihood cannot be quantified - treat as a patch-in-routine-cycle item unless the Frappe instance exposes self-service/public account registration, which would raise the practical risk.

Exploit ScenarioDerived

An authenticated Frappe user (e.g., on an instance that allows self-registration) sets their display name to a string containing a JavaScript payload. When administrators or other users open the leaderboard page, the unsanitized name renders and the script executes in their browser session, enabling session-token theft or actions-on-behalf. No public exploit code is referenced, but the attack is trivial given low complexity (AC:L) and only low privileges (PR:L).

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 (CWE-79) in the Frappe framework's leaderboard page allows an authenticated user to persist a crafted display name whose payload executes in the browsers of other users who open the leaderboard, in all versions before 14.99.10 and 15.x before 15.91.1. Because the name is stored server-side and rendered on a shared page, the payload fires for every visitor without further attacker interaction, giving cross-site scripting in the context of the Frappe application's origin. Exploitation requires a valid account capable of setting its own user name (PR:L) plus a victim navigating to the leaderboard (UI:P); no public exploit code or confirmed active exploitation was identified at time of analysis, and the CVSS 4.0 base score of 5.1 (MEDIUM) reflects the limited direct confidentiality/integrity impact on the vulnerable system offset by scope change to the victim's browser session.

RemediationAI

Vendor-released patch: Frappe 14.99.10 for the 14.x line and Frappe 15.91.1 for the 15.x line - upgrade to the appropriate fixed release as the primary and complete fix, per the vendor advisory at https://github.com/frappe/frappe/security/advisories/GHSA-cx24-w5gm-5vv9. If immediate upgrade is not possible, reduce exposure with compensating controls that directly target the exploit prerequisites: disable self-service account registration and email-based signups so attackers cannot trivially obtain the authenticated account needed to store a payload (trade-off: legitimate new-user onboarding and any customer-facing signup flows must be handled manually); restrict access to the leaderboard page through the Frappe role/permission system or a reverse-proxy rule that returns 403 to unprivileged or external clients (trade-off: the leaderboard becomes unavailable to the users who would otherwise legitimately view it, and any internal links to it will break); and tighten who may edit their own full name / display name, routing name changes through an administrator or a validation hook that rejects HTML-significant characters (trade-off: added helpdesk overhead and reduced user self-service, plus custom scripts may need to be updated). As a supplementary detective measure, audit existing user records for name fields containing angle brackets, script markers, or event-handler attributes and neutralize any found, since payloads already stored remain live until remediated. Note that upgrading is the only measure that removes the underlying missing output-encoding defect.

Affected VersionsENISA

frappe 15.0.0 <15.91.1
frappe 0 <14.99.10

Affected Packages

euvd frappe fix: 14.99.10, 15.91.1

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

Frappe is a full-stack Python web framework, built on a MariaDB/PostgreSQL-backed document model and Jinja-style server-side templates, that powers ERPNext and many custom business applications. The affected code path is the leaderboard page, a shared, aggregate view that lists users (frequently ranked by activity or points) and interpolates each user's stored name directly into the generated HTML rather than escaping it. That missing output neutralization is the root cause class described by CWE-79 (Improper Neutralization of Input During Web Page Generation), and because the tainted value is persisted in the user record it is a stored/persistent XSS rather than a reflected one. The CPE entry cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:* confirms the framework itself (not a downstream app) is the affected component, with the vulnerable window bounded at 14.99.10 on the 14.x line and 15.91.1 on the 15.x line. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P, with SC:L/SI:L) maps to a scope-changing, authenticated, user-interaction-dependent flaw whose consequences are confined to low-level confidentiality and integrity loss in the victim's browser context rather than to the Frappe server itself.

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 plants payload (PR:L), victim must view the page (UI:R), and script executing in another user's browser is a scope change (S:C) with low C/I and no availability impact.

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 14.99.10 and 15.x before 15.91.1 contains a stored cross-site scripting vulnerability in the leaderboard page because user names are rendered without proper neutralization. Authenticated attackers can set a crafted user name that executes arbitrary JavaScript in the browsers of other users who view the leaderboard.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular open-source framework behind ERPNext, 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 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