# CVE-2026-111388: Frappe Framework restrict_ip allowlist bypass for non-session auth

Source: https://junglewise.ai/threats/cve-2026-111388-frappe-framework-before-15-120-0-and-16-x-before-16-33-0-does  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-16. Updated: 2026-10-16  
License: CC BY 4.0 with a link back

CVE-2026-111388 · Severity: medium · CVSS 5.4 · Published 2026-10-16

Frappe Framework is a web application framework used to build business applications. The framework's IP allowlist feature, which restricts user account access to specific networks, is bypassed when using API keys, OAuth tokens, or header-based authentication. An attacker with valid API credentials can access accounts from any IP address, circumventing network-based access controls intended to prevent unauthorized access from outside corporate networks.

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

## Quick answers

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

**How severe is CVE-2026-111388?** Medium severity, with a CVSS score of 5.4, published 16 October 2026.

**Which products and versions are affected?** Frappe Framework before 15.120.0 and 16.x before 16.33.0.

**Is there a fix for CVE-2026-111388?** Yes: fixed in Frappe Framework 15.120.0, 16.33.0. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-111388 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-111388?** Check whether you run Frappe Framework 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 Frappe Framework 15.120.0, 16.33.0

## Technical details

The restrict_ip allowlist enforcement is missing for non-session authentication methods (API key, OAuth, header-based auth), while session-based auth correctly enforces it. An attacker with valid API credentials can authenticate from arbitrary IP addresses. The vulnerability affects Frappe Framework versions before 15.120.0 and 16.x before 16.33.0, with fixes available in those versions.

## Affected products

- Frappe Frappe Framework before 15.120.0 and 16.x before 16.33.0

## Timeline

- 2026-10-01: disclosed
- 2026-10-16: advisory

## References

- [https://github.com/frappe/frappe/security/advisories/GHSA-h9jq-7pgf-hw8q](https://github.com/frappe/frappe/security/advisories/GHSA-h9jq-7pgf-hw8q)
- [https://www.vulncheck.com/advisories/frappe-before-16.33.0-restrict-ip-allowlist-bypass-via-api-key-oauth-authentication](https://www.vulncheck.com/advisories/frappe-before-16.33.0-restrict-ip-allowlist-bypass-via-api-key-oauth-authentication)

## Related threats

- [Frappe Framework broken access control in File list and report queries](https://junglewise.ai/threats/cve-2026-124443-frappe-framework-before-15-121-1-and-16-x-before-16-35-0)
- [Frappe Framework server-side template injection in message fields](https://junglewise.ai/threats/cve-2026-119144-frappe-framework-before-15-111-0-and-16-x-before-16-21-0)
- [Frappe stored cross-site scripting in dashboard chart filters](https://junglewise.ai/threats/cve-2026-109602-frappe-before-15-118-0-and-16-x-before-16-31-0-contains-a-stored)
