Skip to main content

Frappe Framework CVE-2026-66057

| EUVDEUVD-2026-98927 MEDIUM
URL Redirection to Untrusted Site (Open Redirect) (CWE-601)
2026-10-13 GitHub_M
5.1
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Craft OAuth URL with malicious state
  2. Exploit
    Phish victim into clicking link
  3. Execution
    Victim completes legitimate OAuth login
  4. Impact
    Unsanitized state redirects browser to attacker site

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Redirect URL validation
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

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

Exploitation Conditions

The affected Frappe instance must have OAuth / social login configured and enabled (the frappe.utils.oauth login_via_oauth2 flow), and the attacker must deliver a crafted OAuth login link to a victim who then clicks it and completes authentication at the provider - exploitation cannot occur passively or against instances without social login. Key limiting factors: required active user interaction (UI:A), dependency on the OAuth login feature being in use, impact restricted to redirection (no code execution, data write, or availability loss), and applicability only to versions prior to 15.116.0 (v15 line) and 16.29.0 (v16 line).

Impact

This is a genuine but modest-severity issue, best treated as routine patch-cycle work rather than an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N, 5.1 Medium) correctly captures the shape of a CWE-601 open redirect: network-reachable, low complexity, no attacker privileges, but requiring active victim interaction and yielding only low confidentiality impact with no integrity or availability effect. No EPSS score was provided in the input, and the CVE is NOT present in CISA KEV, so there is no evidence of active exploitation. The 'Source code evidence' is the vendor fix (PR #40962 and associated commits), not a weaponized exploit, so this should not be mistaken for public POC exploit code. The signals are internally consistent - a network open redirect gated behind user interaction and a configured OAuth flow - so there is no CVSS-versus-description conflict. The realistic danger is phishing/credential-harvesting amplification (a trusted Frappe domain bouncing users to an attacker site post-login) rather than direct system compromise; prioritize for the next maintenance window, with urgency raised only if the instance exposes OAuth/social login to untrusted users.

Exploit ScenarioDerived

An attacker crafts a Frappe OAuth login URL containing a malicious client-controlled state value and sends it to a victim via phishing. After the victim authenticates through the legitimate OAuth provider, the application uses the unsanitized state to navigate them to an attacker-chosen external location, lending the attacker's landing page the credibility of the trusted Frappe domain. No public exploit code was identified at time of analysis, and the network vector with low complexity makes the link trivial to construct, but success depends on the victim clicking and completing login.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 13, 2026

An open redirect in the Frappe Framework OAuth/social login flow lets a crafted 'state' value control where a user is sent after completing third-party authentication, so a victim who clicks an attacker-supplied login link can be bounced to an attacker-chosen site under the trusted Frappe domain. Only instances that have OAuth social login configured and enabled are affected, and exploitation requires the victim to click the link and finish authenticating at the provider (CVSS 5.1, UI:A, PR:N, S:C, with impact limited to low confidentiality/redirection). No public exploit code or confirmed active exploitation was identified at time of analysis; the issue is modest severity and best handled as routine patch-cycle work, with fixes shipped in Frappe 15.116.0 and 16.29.0.

RemediationAI

Vendor-released patch: upgrade to Frappe Framework 15.116.0 (v15 line) or 16.29.0 (v16 line) or later, per the advisory GHSA-78c5-55xg-jm7m and the release tags v15.116.0/v16.29.0. Because the patch changes the state parameter from a client-readable base64 JSON blob to an opaque single-use server-side token (create_oauth_state/consume_oauth_state, 600-second cache TTL, redeemed once), any custom code, test fixtures, or integrations that construct or parse the old JSON/base64 state format must be updated and re-issued through create_oauth_state, or logins will fail with an HTTP 417 'Invalid Request' page - a functional side effect to expect immediately after upgrade. If upgrading cannot be done promptly, the most effective compensating control is to disable the configured social login keys (frappe.integrations.doctype.social_login_key) or the OAuth callback route until patched, whose trade-off is that legitimate federated/SSO sign-in stops working for all users; restricting inbound access to the OAuth callback endpoint to expected identity-provider infrastructure offers only partial mitigation because the crafted link is delivered to the victim's browser and the redirect is triggered client-side, and the token-expiry/one-time-use weakness in the old code cannot be reproduced by configuration. There is no vendor workaround that preserves the vulnerable flow without the code fix.

Affected VersionsENISA

frappe < 15.116.0
frappe 16.0.0, < 16.29.0

Affected Packages

euvd frappe fix: 15.116.0, 16.29.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

The root cause is CWE-601 (URL Redirection to Untrusted Site / 'Open Redirect') in the OAuth2 authorization-code flow implemented in frappe/utils/oauth.py. Before the fix, the OAuth 'state' parameter was a base64-encoded, client-visible JSON blob containing site, token, and redirect_to fields; on callback, login_oauth_user base64-decoded the attacker-controllable state, JSON-parsed it, and used its redirect_to value directly as the post-authentication navigation target - only checking that a token key was present, not that the state was server-issued. Because state is a request parameter that round-trips through the browser and the identity provider, an attacker could forge it. The upstream patch (PR 40962, commits 12568e2d, 1e0a3b94, 6ed8acd) replaces this with server-side state handling: create_oauth_state() mints a 32-character random token stored in the cache under the key frappe_oauth_login:<state> with a 600-second TTL, holding the intended redirect_to; consume_oauth_state() looks the token up and immediately deletes it, so tokens are single-use and unknown or replayed values resolve to None and now yield an 'Invalid Request' web response with HTTP status 417 instead of a redirect. The test suite explicitly verifies that forged tokens are rejected end-to-end and that legitimate tokens cannot be replayed. The affected CPE is cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:* (the Frappe/ERPNext web framework package).

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 (GitHub_M) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.7 MEDIUM

Network-reachable with no attacker privileges but requires the victim to click and complete login (UI:R); redirect sends the browser to a different security authority (S:C) with only low confidentiality impact and no integrity/availability effect.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Oct 13, 2026 - 18:19 EUVD

DescriptionCVE.org

Frappe is a full-stack web application framework. Prior to 15.116.0 and 16.29.0, the OAuth login flow uses an unsanitized client-controlled state parameter to select post-authentication navigation, allowing a crafted state value to redirect a user to an attacker-chosen location. This issue is fixed in versions 15.116.0 and 16.29.0.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Medium
Popular open-source web/ERP framework (basis of ERPNext), not ubiquitous infrastructure
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.4%
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· 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

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