Skip to main content

Frappe Builder EUVDEUVD-2026-109781

| CVE-2026-115717 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-26 disclosure@vulncheck.com
6.3
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as any low-privilege user
  2. Delivery
    Call convert_to_webp with internal image_url
  3. Exploit
    Bypass validation via DNS rebinding/redirect
  4. Execution
    Server fetches internal/metadata resource
  5. Persist
    Image response saved to world-readable /files/
  6. Impact
    Exfiltrate data or probe internal hosts

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

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

Exploitation Conditions

Requires only a valid authenticated session of any privilege level (CVSS PR:L; the GHSA confirms even a Website User with no Builder access can invoke the endpoint) - no Builder role, admin rights, or user interaction is needed, and default configurations are affected. The exact prerequisite is the ability to call the builder.api.convert_to_webp method with an attacker-controlled image_url. What LIMITS exploitation: (1) an account is needed, so fully anonymous exploitation is not possible; (2) retrieving actual data (versus blind host/port probing) requires the internal response to decode as an image so it is saved to /files/; (3) high-value cloud-metadata theft requires the instance to run in a cloud environment with a reachable link-local metadata endpoint; (4) upgrading to 1.36.1 (which also requires Frappe v16.36.1+) or blocking /api/method/builder.api.convert_to_webp at the reverse proxy - per the vendor, the proxy block also disables in-editor image conversion - closes the issue.

Impact

This is a moderate, authentication-gated SSRF (CWE-918) in Frappe Builder, not an emergency. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms remote, low-complexity, authenticated exploitation with no user interaction, and the impact profile is confined to a subsequent-system confidentiality effect (SC:H) with no integrity or availability impact on the vulnerable system (VC:N/VI:N/VA:N), yielding 6.3 (Medium). The GHSA notes the permission gap is severe in practice because ANY logged-in principal - including a Website User with no Builder access - can reach the endpoint, which widens the realistic attacker population beyond Builder operators. No EPSS score and no KEV status were supplied, and the input shows no confirmed proof-of-concept exploit code - the references are the vendor release, the GHSA advisory, and the VulnCheck advisory, not working exploit code. The vuln.today decision label is 'this_month' (not act_now/emergency), consistent with a real but non-critical priority. Note that the vendor CVSS marks VC:N (no confidentiality impact on the vulnerable system) while the description clearly describes exfiltration of internal/cloud-metadata responses to world-readable /files/ URLs; the real confidentiality exposure to adjacent systems is better captured by SC:H, so treat the headline 6.3 as understating the information-disclosure consequence against cloud-hosted deployments. Overall: a genuine fix-this-cycle issue, elevated where instances run in cloud environments with reachable metadata endpoints.

Exploit ScenarioDerived

A low-privilege authenticated user (even a Website User with no Builder access) calls the convert_to_webp API with an image_url pointing at an internal service or a cloud metadata endpoint (e.g. 169.254.169.254), optionally using DNS rebinding or an open redirect to bypass checks. Responses that decode as images are written to a world-readable /files/ URL returned to the caller, exfiltrating internal data; non-image responses still reveal whether an internal host/port answered, enabling blind internal probing. No public exploit code is identified in the provided data.

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

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

Alert me

AnalysisAIv1 – Oct 26, 2026

Server-side request forgery in Frappe Builder before 1.36.1 lets any authenticated user, including a Website User with no Builder access at all, drive the server-side image converter to fetch arbitrary URLs. Because the convert_to_webp handler performs a requests.get that follows redirects without re-validating the resolved IP, an attacker-supplied image_url can point at internal hosts or cloud metadata endpoints, and any response that decodes as an image is written to a world-readable /files/ URL the caller receives back - turning blind port probing into real data exfiltration. Exploitation requires a valid low-privilege session (PR:L in the CVSS vector), no user interaction, and default configurations are affected; no public exploit code has been identified at time of analysis and the issue is not in CISA KEV. The same advisory notes a path-traversal component via a /builder_assets/../ path and an overwrite hazard for existing public files, so the fix in 1.36.1 is broader than the SSRF itself.

RemediationAI

Vendor-released patch: Frappe Builder 1.36.1 (release notes: https://github.com/frappe/builder/releases/tag/v1.36.1, advisory: https://github.com/frappe/builder/security/advisories/GHSA-5qcg-q3jf-fjcg), and on the 1.36.x branch Frappe framework v16.36.1 or later must also be installed or the fix will not hold. Upgrading closes the SSRF, the missing has_page_write authorization check, the builder_assets path traversal and the same-name file overwrite; the upstream changes are visible in pull requests 989 and 990 and in commits 7b32046 (public-address-only fetches plus page-write requirement), 1c33a16 (path confinement and overwrite prevention) and 22cc21d (download size limit). If upgrading is not immediately possible, the vendor states that blocking /api/method/builder.api.convert_to_webp at the reverse proxy prevents exploitation, with the documented trade-off that it also turns off image conversion in the page editor for all users. Because exploitation only needs a valid low-privilege account, tightening who can self-register as a Website User reduces exposure on internet-facing instances, and running the app outside cloud environments with reachable link-local metadata endpoints limits the value of the SSRF but does not fix it.

Affected VersionsENISA

builder 1.0.0 <1.36.1

Affected Packages

euvd builder fix: 1.36.1

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 Builder is a website/page-builder app built on the Frappe framework (Python), and its builder.api.convert_to_webp endpoint ingests a caller-supplied image_url, downloads it server-side with requests.get, converts the result to WebP and stores it under /files/. The root cause class is CWE-918 (SSRF): unlike sibling asset-ingest handlers, this method was never gated behind the has_page_write permission check (also catalogued as CWE-862 missing authorization), so it was reachable by any logged-in user regardless of Builder role. The URL fetcher followed HTTP redirects and did not re-validate the resolved IP address after each hop, which opens both redirect-based bypasses and DNS-rebinding to reach loopback, link-local or RFC1918 addresses; the request also had no timeout. A second flaw, CWE-22, let a /builder_assets/../ path escape the assets directory and cause the server to write a .webp copy beside any .png or .jpg the process could read, and an external pull could overwrite an existing public file of the same name. The vendor's fix set (commits 7b32046, 1c33a16, 22cc21d, 97063cd in release v1.36.1) adds the page-write permission requirement, restricts remote fetches to public addresses, confines paths inside builder_assets, saves pulled images under unique names, and stops downloads at a size limit.

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 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
vuln.today AI 7.7 HIGH

Authenticated (PR:L) remote SSRF with no UI or complexity barrier; the server fetches resources in a separate security authority (S:C) exposing internal/metadata data (C:H), with no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
Red Hat 4.3 MEDIUM

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
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 26, 2026 - 13:01 EUVD

DescriptionCVE.org

Frappe Builder versions before 1.36.1 contain a server-side request forgery vulnerability in the convert_to_webp API endpoint, which lacks the has_page_write access control applied to similar asset-ingest handlers and performs an unprotected requests.get call that follows redirects without re-validating resolved IP addresses. A low-privilege authenticated user can supply an image_url pointing to an internal address or use DNS rebinding and open redirects to make the server fetch internal network resources or cloud metadata endpoints, with successful image responses saved to a world-readable /files/ URL enabling data exfiltration or blind probing of internal hosts.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
Low
niche open-source low-code website builder, limited enterprise footprint
Data Quality
6 sources
Confidence: High

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.3%
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

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy