Skip to main content

Frappe Framework CVE-2026-111388

| EUVDEUVD-2026-102569 MEDIUM
Improper Access Control (CWE-284)
2026-10-16 VulnCheck GHSA-87cm-fpc4-v76f
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain valid API key or OAuth credential
  2. Exploit
    Send authenticated API request from non-allowlisted IP
  3. Execution
    Restrict_ip allowlist not enforced for non-session auth
  4. Impact
    Access 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.

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

frappe 0 <15.120.0
frappe 16.0.0 <16.33.0

Affected Packages

euvd frappe fix: 15.120.0, 16.33.0

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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
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
vuln.today AI 5.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/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
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 16, 2026 - 03:00 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
Popular open-source Python web framework underpinning ERPNext, common but not ubiquitous
Social Media
1
Sightings
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.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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

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