# CVE-2026-66057: Frappe open redirect in OAuth login flow

Source: https://junglewise.ai/threats/cve-2026-66057-frappe-is-a-full-stack-web-application-framework-prior-to-15-116  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-13. Updated: 2026-10-16  
License: CC BY 4.0 with a link back

CVE-2026-66057 · Severity: info · Published 2026-10-13

Frappe is a web application framework used to build business applications. The OAuth login flow improperly handles the state parameter, allowing attackers to craft malicious links that redirect authenticated users to attacker-controlled websites after they log in. This could be used to phish credentials or deliver malware.

Technologies: [Frappe](https://junglewise.ai/threats/technologies/frappe). Vendors: [Frappe](https://junglewise.ai/threats/vendors/frappe).

## Quick answers

**Is CVE-2026-66057 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-66057 being exploited in the wild.

**How severe is CVE-2026-66057?** Informational severity, published 13 October 2026.

**Which products and versions are affected?** Frappe before 15.116.0, before 16.29.0.

**Is there a fix for CVE-2026-66057?** Yes: fixed in 15.116.0, 16.29.0. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-66057 attacked?** It is attacked over the network.

**Am I affected by CVE-2026-66057?** Check whether you run Frappe at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in 15.116.0, 16.29.0

## Technical details

The vulnerability is an open redirect in the OAuth login flow where an unsanitized client-controlled state parameter is used to select the post-authentication redirect location. An attacker can craft a state value to redirect users to arbitrary URLs. The fix replaces the JSON-encoded state with a server-side random token that resolves the redirect_to via cache lookup instead of decoding from state.

## Affected products

- Frappe Frappe before 15.116.0, before 16.29.0

## Timeline

- 2026-10-13: disclosed

## References

- [https://github.com/frappe/frappe/commit/12568e2d54c4abba70bc0261387053fa28f90988](https://github.com/frappe/frappe/commit/12568e2d54c4abba70bc0261387053fa28f90988)
- [https://github.com/frappe/frappe/commit/1e0a3b941231d74a71ff1a43eee2e9f63c88712d](https://github.com/frappe/frappe/commit/1e0a3b941231d74a71ff1a43eee2e9f63c88712d)

## Related threats

- [Frappe path traversal in file upload](https://junglewise.ai/threats/cve-2026-119145-frappe-before-15-121-0-and-16-x-before-16-34-0-contains-a-path)
- [Frappe SQL injection in reportview get_count method](https://junglewise.ai/threats/cve-2026-55823-frappe-is-a-full-stack-web-application-framework-prior-to-16-23-0)
- [Frappe missing authorization in record modification](https://junglewise.ai/threats/cve-2026-109599-frappe-before-15-113-3-and-16-x-before-16-25-0-contains-a)
- [Frappe LDAP injection in endpoint parameters](https://junglewise.ai/threats/cve-2025-71431-frappe-before-14-99-2-and-15-x-before-15-86-0-contains-an-ldap)
- [Frappe stored cross-site scripting in leaderboard](https://junglewise.ai/threats/cve-2025-71430-frappe-before-14-99-10-and-15-x-before-15-91-1-contains-a-stored)
