Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid API key or OAuth credential
-
ExploitSend authenticated API request from non-allowlisted IP
-
ExecutionRestrict_ip allowlist not enforced for non-session auth
-
ImpactAccess Frappe resources with credential's privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Two concrete prerequisites must both hold: (1) the attacker must possess valid non-session credentials for a target user - specifically an API key/secret, an OAuth access token, or a header-based authentication secret (session-cookie logins are NOT affected); and (2) the targeted user account must have a per-user restrict_ip allowlist configured, otherwise there is no network restriction to bypass and the flaw has no effect. The bypass therefore only materializes in deployments that deliberately use restrict_ip as an access control. Limiting factors: this is a privilege-bounded bypass (PR:L) - it grants no more than the stolen credential already allows and does not by itself obtain those credentials; it has no impact on default configurations that do not set restrict_ip; and it is a confidentiality/integrity-partial, availability-none issue. |
| Impact | This is a medium-severity access-control bypass (CVSS 4.0 base 5.3, vendor-supplied vector AV:N/AC:L/AT:N/PR:L/UI:N) with limited technical impact (VC:L/VI:L/VA:N, no scope change). The attack vector is network and complexity is low, but crucially PR:L means the attacker must already hold valid credentials (an API key, OAuth token, or header-auth secret), so this is not a path to initial compromise - it defeats a defense-in-depth network restriction (the per-user restrict_ip allowlist) rather than granting new access. No EPSS score, no CISA KEV listing, and no public exploit were provided in the intelligence, placing this well below the priority of a remote unauthenticated RCE. The SSVC framework is not supplied; inferring from the data, exploitation is not confirmed in the wild, technical impact is partial, and automatable value is low because the bypass only matters once credentials are already compromised. Net assessment: a real but second-order hardening fix most relevant to organizations that deliberately rely on restrict_ip as a compensating control, not a drop-everything emergency. One caveat to verify: the vendor vector assigns VC:L/VI:L, but the actual confidentiality/integrity exposure is entirely determined by the privileges of the stolen credential, so impact could be higher or lower than the base score suggests depending on the account. |
| Exploit ScenarioDerived | An attacker who has obtained a valid Frappe API key or OAuth token for a user whose account is locked down with a restrict_ip allowlist (for example, a leaked key intended to be usable only from a corporate VPN egress IP) authenticates to the REST API from an arbitrary internet IP address outside that allowlist. Because the allowlist is enforced only for session-based login and not for API-key, OAuth, or header-based authentication, the request succeeds and the attacker operates with that user's privileges from an unauthorized location. No public exploit identified at time of analysis; the technique requires no special tooling beyond a standard HTTP client. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Frappe Framework before 15.120.0 and 16.x before 16.33.0 does not enforce its per-user restrict_ip IP allowlist for non-session authentication methods, allowing an authenticated attacker with a valid API key, OAuth token, or header-based credential to authenticate from an IP address outside the configured allowlist. This bypasses network-based access restrictions but requires both a valid non-session credential and a targeted user account that has restrict_ip configured; it is a medium-severity access-control flaw (CVSS 4.0 base 5.3) with limited confidentiality and integrity impact. No public exploit identified at time of analysis.
RemediationAI
Upgrade to Frappe Framework 15.120.0 (for the 15.x branch) or 16.33.0 (for the 16.x branch) to enforce the restrict_ip allowlist for all authentication methods. If immediate upgrade is not possible, disable API key, OAuth, and header-based authentication for any user account that has restrict_ip configured; note that this can break integrations relying on those methods. Alternatively, enforce network-level access controls (e.g., VPN, firewall rules) to restrict access to the application, though this requires careful configuration and may not fully replicate per-user granularity. Consult the vendor advisory at https://github.com/frappe/frappe/security/advisories/GHSA-h9jq-7pgf-hw8q for patch details and the VulnCheck advisory at https://www.vulncheck.com/advisories/frappe-before-16.33.0-restrict-ip-allowlist-bypass-via-api-key-oauth-authentication for additional context.
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 Framework is a full-stack web application framework that includes authentication mechanisms such as session cookies, API key/secret pairs, OAuth tokens, and header-based authentication. The per-user restrict_ip setting is intended to limit authentication to specific IP addresses, acting as a network-based access control. CWE-284 (Improper Access Control) describes the root cause: the framework fails to apply the allowlist check to non-session authentication paths, so only session-based logins are restricted. The CVSS vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N) indicates a network-accessible, low-complexity issue requiring low privileges (authenticated) with low confidentiality and integrity impact and no availability impact. Affected CPE entries are cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:* for the 15.x and 16.x branches prior to the fixed versions.
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:L/VA:N/SC:N/SI:N/SA:N
Requires a valid non-session credential so PR:L; network-reachable API with low complexity (AV:N/AC:L); bypass yields partial C/I bounded by the credential, no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Frappe Framework before 15.120.0 and 16.x before 16.33.0 does not enforce the per-user restrict_ip allowlist for non-session authentication methods, including API key, OAuth, and header-based authentication. Attackers holding valid credentials of these types can authenticate from IP addresses outside the allowlist, defeating the configured network-based access restrictions.
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-102569
GHSA-87cm-fpc4-v76f
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB