---
id: "CVE-2026-115720"
kind: "vulnerability"
aliases: ["CVE-2026-115720"]
title: "Frappe Builder: redirect bypass lets authenticated users reach internal addresses"
severity: "medium"
cvss: 5.3
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["cloud-metadata", "erpnext", "frappe", "frappe-builder", "package", "self-hosted"]
not_affected_if: ["builder-app-not-installed", "fixed-version", "no-outbound-to-internal-network"]
published_at: "2026-10-26T12:17:05+00:00"
first_seen_at: "2026-10-26T12:29:53+00:00"
updated_at: "2026-10-26T12:31:44+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-115720", "first_seen_at": "2026-10-26T12:29:53+00:00"}]
---

# Frappe Builder: redirect bypass lets authenticated users reach internal addresses

Frappe Builder before 1.36.1 checks only the first hostname of a URL passed to its convert_to_webp endpoint, then follows redirects without rechecking. An authenticated attacker can use a public URL that redirects to internal or link-local targets, such as cloud metadata services, to read or probe internal systems.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed Frappe Builder version in the app's `apps.json` or bench app list; versions below `1.36.1` are affected
- Confirm whether the `builder` app is installed on the site with `bench --site <site> list-apps`

## Fix

- Upgrade Frappe Builder to `1.36.1` or later
- Until upgraded, restrict outbound access from the server to internal and metadata IP ranges

## Timeline

- 2026-10-26T12:29:53+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-115720

## From the sources

Frappe Builder before 1.36.1 contains a server-side request forgery vulnerability in builder/api.py where the assert_not_private_url() guard validates only the initial hostname before callers invoke requests.get(url) with default redirect-following and no IP pinning, allowing an attacker-supplied public URL to HTTP-redirect to internal or link-local addresses the guard never validated. An authenticated attacker can call the convert_to_webp endpoint, which lacks a permission decorator, with a URL that redirects to internal targets such as cloud metadata services to perform SSRF, internal port scanning, or trigger a request-hang denial of service due to the missing timeout.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
