Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege CRM user
-
ExploitCall get_linked_docs_of_document naming an unauthorized record
-
ImpactRead 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database c
SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa
Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A
An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev
Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie
SQL injection in Frappe HelpDesk 1.14.0 dashboard functionality allows authenticated attackers to execute arbitrary SQL
In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re
EUVD-2026-96900
GHSA-q2m6-4pqw-x7v8
NVD
CVE.org
EPSS
Exploit-DB