Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privileged Frappe account
-
DeliveryEnumerate parent DocType records accessible to the account
-
ExploitIdentify Link fields referencing restricted DocTypes
-
ExecutionCraft REST API GET request for a parent record
-
PersistFramework resolves linked DocType without enforcing permissions
-
ImpactExtract unauthorized field data from API response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
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 | Exploitation requires a valid authenticated account with at least low-privileged access to the Frappe instance (confirmed by PR:L in the CVSS 4.0 vector). The attacker must be able to identify a parent DocType record they have read access to that contains a Link field pointing to a DocType for which their role lacks permission - a condition common in any multi-role Frappe deployment. No special configuration, non-default settings, or elevated privileges beyond basic authentication are required. Exploitation is read-only: no write, create, or delete capability is exposed. The bypass is specific to the REST API document retrieval path; the security advisory does not confirm whether other access paths (e.g., the Frappe web form UI) are equally affected. |
| Impact | The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N) scores 7.1, capturing a network-accessible, low-complexity, authenticated read-only confidentiality bypass. No EPSS score was included in the intelligence data, so exploitation probability cannot be quantified from that signal. This CVE is not present in the CISA KEV catalog and no POC code has been identified, indicating no confirmed active exploitation at time of analysis. The practical risk is highest in multi-tenant or multi-role Frappe/ERPNext deployments - common in SME ERP contexts - where role-based data segregation is a security requirement. The PR:L constraint limits exposure to credentialed users, but in shared or SaaS Frappe instances, any low-privileged account becomes a viable attacker. Impact is strictly limited to confidentiality; integrity and availability are unaffected per both the CVSS vector and description. |
| Exploit ScenarioDerived | An authenticated low-privileged user - for example, a sales representative with access only to Sales Order documents - sends a crafted REST API GET request to retrieve a Sales Order record that contains a Link field referencing a restricted DocType such as Customer financial details or Employee payroll records. The framework resolves the linked fields without re-checking the requester's permissions on the target DocType and returns the sensitive data in the API response. No public exploit code has been identified, but the technique is straightforward for any user familiar with Frappe's documented REST API structure. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 26, 2026
Frappe's REST API before v15.115.0 contains an access control bypass (CWE-863) that allows any low-privileged authenticated user to read fields from Linked DocType records outside their permitted scope. When a document is fetched via the REST API, the framework resolves Link field references to other DocTypes but inconsistently re-applies the linked DocType's own permission rules, enabling horizontal data leakage across role boundaries. No confirmed active exploitation or public exploit code has been identified, but the low attack complexity and network-accessible vector create meaningful data exfiltration risk in multi-role or multi-tenant Frappe/ERPNext deployments.
RemediationAI
Upgrade Frappe to version 15.115.0 or later, which contains the vendor-confirmed fix for this authorization bypass (https://github.com/frappe/frappe/releases/tag/v15.115.0; advisory: https://github.com/frappe/frappe/security/advisories/GHSA-p25m-7rvg-6fvr). If immediate upgrade is not feasible, reduce exposure by auditing and tightening Frappe role permissions to minimize the number of DocTypes that contain Link fields pointing to sensitive records, and restrict REST API access to only explicitly trusted authenticated users via network controls or reverse proxy ACLs. Note that Frappe role-permission changes can affect application functionality and should be tested before deployment. These controls reduce but do not eliminate the risk - patching to 15.115.0 is the definitive remediation.
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
Frappe is a Python/JavaScript full-stack web application framework that underpins ERPNext and other business applications. Its data model is built around DocTypes - schema-defined document types - which may reference each other through Link fields. The REST API endpoint for document retrieval resolves these Link fields to populate related record data. The root cause (CWE-863, Incorrect Authorization) is that permission enforcement is applied to the parent document being fetched but not consistently re-evaluated against the linked DocType's own access control matrix. This means a user with read access to DocType A can retrieve fields from DocType B via a Link field on DocType A, even if their role explicitly excludes access to DocType B. No CPE strings were provided in the intelligence data; the affected codebase is github.com/frappe/frappe at all versions prior to 15.115.0.
Know when Python 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:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-accessible REST API with low-privilege authentication required (PR:L); pure confidentiality disclosure within same system scope (S:U), no integrity or availability impact.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
Frappe is a full-stack web application framework written in Python and JavaScript. Prior to version 15.115.0, an access control bypass in the REST API allows a user to read data from Linked DocTypes that they are not authorized to access. When a document references another document through a Link field, the framework does not consistently enforce the linked DocType's own permissions when the record is retrieved through the REST API, so a low-privileged authenticated user can obtain fields from linked records outside their permitted scope. This issue is fixed in version 15.115.0.
Executive ViewAI
Frappe REST API versions before 15.115.0 contain an access control bypass (CWE-863) that allows authenticated low-privileged users to read sensitive data from linked documents outside their authorized scope. No public exploit identified at time of analysis, but the low attack complexity creates meaningful data leakage risk in multi-role and multi-tenant ERPNext deployments.
Disable REST API if not operationally necessary; restrict API access via network controls to trusted systems only; enforce principle-of-least-privilege for API users and role-based endpoint restrictions; implement detailed API request logging and alerting for linked-document access; apply API gateway or WAF rules blocking cross-role data queries; audit and restrict document linking permissions between sensitive DocType records. No vendor-released patch identified at time of analysis; coordinate with vendor on v15.115.0 release timeline for remediation.
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.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
EUVD-2026-66704
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB