Skip to main content

Frappe CRM EUVDEUVD-2026-96900

| CVE-2026-108734 MEDIUM
Missing Authorization (CWE-862)
2026-10-11 VulnCheck GHSA-q2m6-4pqw-x7v8
5.3
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-privilege CRM user
  2. Exploit
    Call get_linked_docs_of_document naming an unauthorized record
  3. Impact
    Read leaked phone numbers, deal orgs, and mention text

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a valid authenticated Frappe CRM session at any privilege level - the attacker must be able to call the REST/RPC endpoint crm.api.doc.get_linked_docs_of_document and supply the name of a target lead, deal, comment, or user document. No special non-default configuration or user interaction is needed; the missing permission check is in the standard code path. Exploitation is LIMITED by the authentication requirement (PR:L, so a login is mandatory - self-service signup or a low-trust internal account suffices) and by the narrow data scope: only linked-document metadata (call-log phone numbers, deal organizations, mention notification text) is exposed, with no write, modification, or denial-of-service capability. Affects Frappe CRM versions 1.49.0 through 1.87.0.

Impact

This is a genuine but low-to-moderate priority information-disclosure flaw, not a false-alarm high-CVSS issue - and in fact it is scored modestly (5.3) to begin with. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N) consistently describes a network-reachable, low-complexity bug that REQUIRES an authenticated low-privilege account (PR:L) and yields only limited confidentiality impact (VC:L) with zero integrity or availability impact - matching the description's claim that attackers merely read linked data (call-log phone numbers, deal organizations, mention text) they should not see. All signals align in the same direction: there is no CISA KEV listing, no confirmed public exploit code flag, and no EPSS probability supplied in the input, so exploitation likelihood cannot be quantified from the data provided and should be treated as unmeasured rather than low. The limiting factors (valid authentication needed, only low-sensitivity CRM metadata exposed, no write capability) substantially cap real-world severity; the realistic risk is a malicious or compromised internal CRM user harvesting cross-tenant/cross-permission records, not mass internet exploitation. No key signals conflict, but note the absent EPSS and the fact that active-exploitation status is unconfirmed.

Exploit ScenarioDerived

A low-privileged but authenticated Frappe CRM user (for example a limited sales rep or a self-registered account) calls the crm.api.doc.get_linked_docs_of_document endpoint, supplying the name of a lead, deal, comment, or user record they have no permission to view. Because the endpoint omits a permission check, the server returns the linked documents, letting the attacker harvest call-log phone numbers, the organizations tied to deals, and the text of mention notifications. A technical write-up describing the flaw is published on HackMD, but no verified weaponized exploit code is confirmed in the provided data.

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

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

Alert me

AnalysisAIv1 – Oct 11, 2026

Authenticated Frappe CRM users can read linked-document details for records they are not permitted to view, because the API method crm.api.doc.get_linked_docs_of_document in versions 1.49.0 through 1.87.0 resolves leads, deals, comments, and users by name without applying Frappe's permission checks. By supplying the name of a document they cannot legitimately access, any logged-in account - even a low-trust or self-service one - can extract linked call-log phone numbers, deal organization names, and mention notification text. The flaw is a genuine but modest information-disclosure issue (CVSS 5.3), limited to read-only metadata with no write, modification, or denial-of-service impact; no public exploit was identified at time of analysis and there is no confirmed active exploitation (CISA KEV).

RemediationAI

No vendor-released patched version was identified in the supplied intelligence for this CVE, and the CVE reference to crm/api/doc.py at a pinned commit cannot be independently confirmed as a fix rather than a snapshot of the vulnerable code, so patched-release status should be verified directly with the Frappe CRM maintainers and on the repository's release/tag page before relying on any specific version number. The primary fix is to upgrade to a Frappe CRM release newer than 1.87.0 that adds a frappe.has_permission()/frappe.get_doc() authorization check to get_linked_docs_of_document, or to backport that check into the method. Where upgrading is not immediately possible, the most direct compensating control is to neutralize the endpoint: override or patch the whitelisted method (for example via an app-level override_whitelisted_methods hook or a before_request guard) so it verifies read permission on the requested document before returning linked records - the trade-off is that the CRM UI's linked-document panel will stop rendering data for legitimate users until the check is properly implemented. Because exploitation requires a valid session (PR:L), reducing the number of accounts with CRM login - disabling self-service signup and reviewing low-trust or stale user accounts - materially shrinks the attack surface without breaking functionality, though it does not remove the underlying missing check. Restricting network reachability of the Frappe CRM web/RPC tier to trusted networks or a VPN is an additional compensating control but is impractical for internet-facing or cloud-hosted CRM deployments. Monitor access logs for repeated calls to crm.api.doc.get_linked_docs_of_document with document names the caller has no role-based access to, as this pattern is the signature of the flaw; detection is best-effort since the requests are otherwise well-formed and minimally privileged. Refer to https://www.vulncheck.com/advisories/frappe-crm-1.49.0-through-1.87.0-missing-authorization-via-get-linked-docs-of-document for vendor-side updates and to the repository at https://github.com/frappe/crm for patch commits; no public exploit was identified at time of analysis, so prioritization can follow normal patch-management timelines rather than emergency response.

Affected VersionsENISA

crm 1.49.0 ≤1.87.0

Affected Packages

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

The vulnerability is a missing-authorization defect (CWE-862) in Frappe CRM, the standalone CRM application built on the Frappe/ERPNext low-code framework. Frappe applications expose server-side Python functions as REST/RPC endpoints via the @frappe.whitelist() decorator, and those functions are expected to call frappe.has_permission() or frappe.get_doc()/frappe.get_list() with permission enforcement before returning document data. The affected routine, crm.api.doc.get_linked_docs_of_document (source visible in the CVE-referenced pinned commit at crm/api/doc.py lines 684-725), resolves linked documents by the caller-supplied document name but skips that authorization step, so the framework's standard DocType-level role and user permission rules never apply. The exposed data comes from the framework's linked-document and comment/notification model (Link fields, dynamic links, comments, and mention notifications), which is why the leakage is limited to call-log phone numbers, deal organization relationships, and mention notification text rather than full document contents. The CPE entry cpe:2.3:a:frappe:crm:*:*:*:*:*:*:*:* indicates the whole product is treated as affected across the 1.49.0-1.87.0 range. Per the assessed CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N vector and CVSS 4.0 base of 5.3, network access, a valid session, no user interaction, and only low confidentiality impact are consistent with the implementation and with the narrow scope of the disclosed data; no non-default configuration is required because the missing check sits in the standard code path.

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.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-reachable API (AV:N) with no special complexity (AC:L) but a mandatory authenticated low-privilege account (PR:L); limited metadata disclosure gives C:L with no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Frappe CRM 1.49.0 through 1.87.0 contains a missing authorization vulnerability in crm.api.doc.get_linked_docs_of_document that allows authenticated users to read linked documents without permission checks. Attackers can name a lead, deal, comment or user they cannot read to obtain linked call log phone numbers, deal organizations and mention notification text.

Threat Intelligence Overview

EPSS Score
0.3%
Top 85% exploitable
Prevalence
Low
niche open-source CRM add-on, limited enterprise deployment footprint
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.3%
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· 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

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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