Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain any non-Guest account on the site
-
DeliveryCall builder.ai.api.improve_prompt endpoint
-
ExploitMissing authorization check is skipped
-
Executionresolve_api_key injects owner's stored AI key
-
ImpactRun billed LLM completions, draining paid credits
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Three concrete prerequisites must all hold: (1) the site runs a vulnerable Frappe Builder version in the band 1.33.0 through 1.35.x; (2) an AI provider key (OpenRouter per the description) is configured in Builder's AI settings, since resolve_api_key must have a stored key to spend - if no key is configured there is nothing to abuse; and (3) the attacker possesses any authenticated non-Guest session (PR:L), which can be a Website User with no Builder access at all. Limiting factors that reduce realistic risk: authentication is required (not anonymous/remote-unauthenticated), the impact is confined to consuming the owner's LLM credits with no read/write access to site data, and sites without a configured AI key or already on 1.36.0 (where the endpoint is removed) are not exploitable. |
| Impact | This is a genuine but modest-severity issue best characterized as abuse of paid resources rather than a system compromise. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and the confirming GHSA advisory agree: exploitation is network-based, low-complexity, requires no user interaction, and needs only a low-privilege authenticated session (PR:L) - specifically any logged-in non-Guest user, even a Website User with no Builder access. The impact is limited to availability of a financial resource (VA:L; VC:N/VI:N) - consumption of the site owner's AI/LLM credits - with no confidentiality or integrity impact, which is why the score lands at 5.3 (Medium). No EPSS score, SSVC exploitation/automatable/technical-impact decision, or CISA KEV status was supplied in the input, so widespread-exploitation probability cannot be quantified from the data; the only prioritization signal present is the vuln.today 'this_month' label, consistent with a Medium, non-emergency issue. No public exploit was identified at time of analysis. The key gating factor that holds real-world risk below the raw CVSS is deployment-dependent: exploitation only works where an AI provider key is actually configured in Builder's AI settings, and only against the narrow version band 1.33.0-1.35.x. Net: a real priority worth patching this month for affected deployments, but a financial/abuse problem, not a data-breach or RCE emergency. |
| Exploit ScenarioDerived | An attacker who holds or registers any non-Guest account on a Frappe Builder site (for example a low-privilege Website User with no Builder permissions) sends repeated requests to the builder.ai.api.improve_prompt API. Because the endpoint performs no permission check, resolve_api_key supplies the site owner's stored AI provider (OpenRouter) key, so each call runs an LLM completion billed to the owner and returns the output to the caller, effectively turning the site into a free LLM proxy. No public exploit was identified at time of analysis, but the call is a single authenticated API request with no special complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 26, 2026
Missing authorization in Frappe Builder's builder.ai.api.improve_prompt endpoint lets any logged-in non-Guest session - including a Website User with no Builder access whatsoever - run LLM completions on the AI provider key the site owner configured for Builder, spending the owner's paid credits and returning the model output to the caller. Versions 1.33.0 through 1.35.x are affected; 1.36.0 removes the endpoint entirely. Exploitation still requires that an AI provider key (OpenRouter per the report) is actually stored in Builder's AI settings, and the impact is limited to resource consumption - no site data read or write, no system compromise. No public exploit code or CISA KEV entry was identified at time of analysis, and the vulnerability is scheduled for routine (this-month) handling rather than emergency response.
RemediationAI
Upgrade Frappe Builder to 1.36.0, which removes the vulnerable improve_prompt endpoint; the GHSA (https://github.com/frappe/builder/security/advisories/GHSA-58mj-c563-p78w) states that the 1.36.x line requires Frappe v16.36.1 or later, so plan the framework upgrade alongside it and verify both after the change. The upstream change landed via https://github.com/frappe/builder/pull/940 and is described in the v1.36.0 release notes. If upgrading cannot happen immediately, the vendor-specified workaround is to remove the AI provider key from Builder's AI settings until the site is upgraded - with no stored key, resolve_api_key has nothing to spend and the endpoint cannot burn credits; the trade-off is that Builder's AI-assist features stop working for legitimate users until the key is restored after patching. Sites that never configured an AI provider key are not exposed and can schedule the upgrade normally.
Affected VersionsENISA
Affected Packages
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 site/page-building application built on the Frappe framework, which exposes Python functions as RPC-callable API endpoints and relies on per-method permission checks rather than framework-wide enforcement. The flaw is CWE-862 (Missing Authorization): builder.ai.api.improve_prompt carried no permission check at all, so any authenticated session - the framework distinguishes Guest (unauthenticated) from every logged-in user role - could invoke it. Behind the endpoint, resolve_api_key retrieves the provider credential stored in Builder's AI settings, so a successful call causes the server to perform an LLM completion billed to the site owner's account and to hand the generated text back to the attacker. That turns an otherwise ordinary AI-assist feature into an unauthenticated-by-design (for logged-in users) proxy to a paid third-party LLM service. The upstream fix in 1.36.0 removes the improve_prompt endpoint outright rather than adding a permission gate, and the 1.36.x line additionally requires Frappe v16.36.1 or later. The authenticated-but-low-privilege prerequisite is reflected in the assessed vector AV:N/AC:L/PR:L/UI:N with availability-only impact (A:L) and no confidentiality or integrity effect on site data. The trigger path is simply a call to the exposed endpoint; the sources do not describe any further preconditions beyond a stored AI key.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Any low-privilege authenticated user can remotely call the unprotected endpoint (PR:L, AC:L, UI:N); impact is limited to consuming the owner's paid LLM credits, so A:L with no confidentiality or integrity impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
1DescriptionCVE.org
Frappe Builder versions 1.33.0 before1.36.0 contain a missing authorization vulnerability in the improve_prompt endpoint that allows any authenticated non-Guest session to invoke LLM completions without proper permission checks. Attackers can call the improve_prompt API to leverage the site owner's stored OpenRouter API key via resolve_api_key, consuming paid LLM credits and effectively turning the site into a free LLM proxy.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database c
SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa
Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A
An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev
Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie
SQL injection in Frappe HelpDesk 1.14.0 dashboard functionality allows authenticated attackers to execute arbitrary SQL
In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re
EUVD-2026-109780
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB