Skip to main content

Frappe CRM CVE-2025-68928

MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2025-12-29 security-advisories@github.com
5.4
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privileged CRM user
  2. Delivery
    Store javascript: payload in organization website field
  3. Exploit
    Victim opens record and clicks website link
  4. Execution
    window.open executes script in victim session
  5. Impact
    Hijack session / 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

Exploitation requires an authenticated CRM account with permission to create or edit a CRM Organization (or Contact) record and populate its 'website' field with an unsanitized URL. The payload only fires when a second user subsequently views that record and actively clicks the website link, which routes an attacker-controlled value (e.g. a javascript: scheme) into window.open() without protocol validation. Limiting factors: valid credentials are needed (PR:L), the attack is not self-triggering and depends on victim interaction (UI:R), and it is confined to versions prior to 1.56.2 - the patch adds a strict http/https allowlist that neutralizes the vector with no configuration change required.

Impact

This is a moderate, not urgent, priority. The provided CVSS 3.1 vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N, base 5.4) describes a stored cross-site scripting flaw requiring authentication (PR:L) and victim interaction (UI:R), with a scope change (S:C) reflecting execution in another user's browser context and only Low confidentiality/integrity impact. No EPSS score, KEV listing, or POC was supplied, so exploitation signals are absent - there is no public exploit identified at time of analysis and no evidence of active exploitation. The source-code evidence clarifies the real mechanism: a 'website' field value is passed to window.open() without protocol validation, so a crafted javascript:-scheme URL executes when another operator clicks the organization's website link; the patch introduces a getSafeWebsiteUrl() http/https allowlist. The signals are internally consistent - authenticated, interaction-gated, limited-impact XSS - pointing to a genuine but lower-tier issue rather than a high-CVSS/low-real-risk outlier or a wormable threat. No conflicting data was observed; the main limitation is simply that exploitation-likelihood telemetry (EPSS/KEV/POC) was not provided.

Exploit ScenarioDerived

An authenticated CRM user with permission to create or edit an organization sets the website field to a javascript:-scheme (or other non-http) payload instead of a normal URL. When another user - such as a sales rep or administrator - later opens that organization and clicks the website link, the unsanitized value is handed to window.open(), executing attacker-controlled script in the victim's authenticated session. No public exploit was identified at time of analysis, though the fix commit publicly reveals the vulnerable code path.

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 05, 2026

Stored cross-site scripting in Frappe CRM allows an authenticated user with permission to create or edit a CRM Organization or Contact record to inject a crafted URL into the website field, which is later executed when another user clicks the link. This affects versions prior to 1.56.2 and requires victim interaction, confirmed by the CVSS vector (PR:L/UI:R). CISA KEV does not list this issue, and no public exploit code has been identified at time of analysis; the vendor has released version 1.56.2 as a patch.

RemediationAI

Upgrade to Frappe CRM version 1.56.2, which contains the vendor-released patch (commit c5766d9989131d17d954e866bfc4b8d3b23e4f10). The fix enforces a strict http/https allowlist for website URLs and adds noopener to external links. No workarounds are available per the vendor advisory; if upgrading is not immediately possible, limiting permissions to edit the website field on CRM Organization and Contact records to trusted users reduces exposure, but this is not a substitute for patching. See the GitHub Security Advisory at https://github.com/frappe/crm/security/advisories/GHSA-fm34-v6j7-chwc and the release at https://github.com/frappe/crm/releases/tag/v1.56.2.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Frappe CRM is built on the Frappe framework, using a Vue.js single-page frontend. The vulnerability (CWE-79) arises because the website field on CRM Organization and Contact records was not sanitized before being passed to window.open() in the frontend. An attacker could store a URL with a javascript: scheme or other unsafe protocol, which would execute in the context of the CRM when a victim clicked the link. The fix in commit c5766d9989131d17d954e866bfc4b8d3b23e4f10 introduces getSafeWebsiteUrl, which parses the URL and allows only http and https protocols, and adds rel='noopener' to the window.open call. The CPE cpe:2.3:a:frappe:frappe_crm:*:*:*:*:*:*:*:* confirms all versions before 1.56.2 are affected.

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 (github) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Authenticated user stores the payload (PR:L), a different victim must click the link (UI:R), and script runs in the victim's browser context, crossing a trust boundary (S:C) with limited C/I 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:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

Frappe CRM is an open-source customer relationship management tool. Prior to version 1.56.2, authenticated users could set crafted URLs in a website field, which were not sanitized, causing cross-site scripting. Version 1.56.2 fixes the issue. No known workarounds are available.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
niche open-source CRM, limited enterprise deployment footprint
Data Quality
4 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

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
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.

Affected Products (CPE)CVE.org

cpe:2.3:a:frappe:frappe_crm:*:*:*:*:*:*:*:*

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