Skip to main content

Frappe Framework CVE-2025-68929

CRITICAL
Improper Neutralization of Special Elements Used in a Template Engine (CWE-1336)
2025-12-29 security-advisories@github.com
9.0
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Obtain authenticated account with required permissions
  2. Delivery
    Craft malicious link with template payload
  3. Exploit
    Lure privileged user to open link
  4. Execution
    Server renders injected template (SSTI)
  5. Persist
    Execute arbitrary code on Frappe host
  6. Impact
    Full server compromise

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V1 - Encoding and Sanitization Template injection prevention
Exploitation Conditions

Exploitation requires an authenticated Frappe user who holds 'specific permissions' (per the advisory) and who must be socially engineered into opening a specially crafted link that carries a server-side template payload - this is the concrete precondition, not a default-configuration remote attack. The principal limiting factors are: (1) valid authentication at a non-trivial permission level (PR:L), and (2) mandatory victim interaction (UI:R) - the privileged user must actively click/access the attacker's link for the malicious template to render. These two gates substantially narrow realistic exploitation to targeted social-engineering of existing privileged accounts rather than opportunistic mass exploitation. No workaround exists; only upgrading to 14.99.6 (v14 branch) or 15.88.1 (v15 branch) remediates it.

Impact

This is a genuine high-priority vulnerability but short of 'drop everything' emergency status, and the signals are largely consistent. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H, base 9.0) reflects a server-side template injection that yields full remote code execution with scope change - meaning compromise extends from the Frappe application to the underlying OS. However, two CVSS metrics meaningfully constrain real-world risk: PR:L requires the attacker to already have an authenticated account with 'specific permissions' (per the description), and UI:R requires tricking that privileged user into clicking a crafted link, making this a social-engineering-dependent, semi-targeted attack rather than a point-and-shoot remote exploit. The exploitation-likelihood signals corroborate a lower urgency than the 9.0 suggests: EPSS is only 0.50% (41st percentile), there is no CISA KEV listing, and no public exploit code was identified in the provided intelligence. The combination of a critical technical-impact score with low EPSS and no observed exploitation indicates a serious-but-not-yet-actively-weaponized flaw - patch promptly, but it does not carry the same immediacy as an unauthenticated, no-interaction KEV-listed RCE. No SSVC decision data was provided in the input, so that framework cannot be applied here.

Exploit ScenarioDerived

An attacker who holds (or phishes) a Frappe account with the requisite permissions crafts a malicious link embedding a server-side template payload and lures a privileged victim into opening it. When the victim's authenticated session processes the link, the malicious Jinja/template content is rendered server-side, executing attacker-controlled code on the Frappe host. No public proof-of-concept was identified in the provided data, and UI:R means the chain depends on successfully social-engineering the victim into clicking.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 13, 2026

Authenticated server-side template injection in Frappe Framework (v14 branch before 14.99.6 and v15 branch before 15.88.1) allows an attacker to have a malicious template executed on the server, resulting in remote code execution with high confidentiality, integrity, and availability impact. The CVSS vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H) shows two real gates: the attacker needs valid credentials at a non-trivial permission level and must socially engineer that user into opening a crafted link, so risk concentrates on targeted phishing of privileged accounts rather than opportunistic mass exploitation. No public exploit code has been identified at time of analysis, the issue is not in CISA KEV, and EPSS is low at 0.50% (41st percentile); vendor-released patches 14.99.6 and 15.88.1 are available and the advisory states no workarounds exist.

RemediationAI

Vendor-released patch: upgrade to Frappe Framework 14.99.6 (v14 branch) or 15.88.1 (v15 branch) as applicable, per the vendor releases at https://github.com/frappe/frappe/releases/tag/v14.99.6 and https://github.com/frappe/frappe/releases/tag/v15.88.1 and the advisory at https://github.com/frappe/frappe/security/advisories/GHSA-qq98-vfv9-xmxh; the advisory explicitly states no workarounds are available, so patching is the only complete fix. Until upgrades can be scheduled, compensating controls target the two exploitation gates: (1) reduce the population of accounts holding the specific template-related permissions needed to trigger rendering - audit roles (including System Manager and any role that can author email templates, notifications, or print formats) and remove them from users who do not strictly need them, accepting the trade-off that legitimate administrative workflows will be constrained; and (2) blunt the social-engineering prerequisite (UI:R) through user awareness for crafted links and by limiting who can reach the affected features over the network, noting that this only lowers likelihood and does not remove the flaw. Because the payload executes with application privileges and has scope change, also treat any successfully upgraded instance as potentially compromised if a privileged user clicked an untrusted link beforehand: review custom Jinja templates, scheduled jobs, and outbound connections for tampering, and rotate application secrets if suspicious artefacts are found.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause class is CWE-1336, improper neutralization of special elements used in a template engine - i.e. server-side template injection (SSTI), consistent with the 'Ssti' and 'RCE' tags on this record. Frappe renders user- and record-derived content through its Jinja-based templating layer (used across email templates, notifications, print formats, and similar features); when attacker-influenced input is passed into that engine and evaluated instead of being treated as inert text, template directives execute in the server process with the privileges of the Frappe/ERPNext application, which is why the assessed vector carries S:C (scope change) alongside C:H/I:H/A:H. The attack path is network-reachable (AV:N) with low complexity (AC:L), but is gated by PR:L and UI:R per the authoritative assessment: the crafted link must be delivered to and opened by an authenticated user holding the specific permissions required to reach the affected feature, and the malicious template then renders server-side. Circumstantial corroboration comes from the v14.99.6 release notes, which include a change to the Auto Repeat 'Preview Message' behavior so the preview renders the template stored in the record rather than any text sent from the browser (PR 34600) - a modification consistent with removing client-controlled template input, though the release notes themselves do not name this CVE and the mapping is not independently confirmed. The same release also adds a path check restricting file downloads to the site's public/files folder (PR 34652).

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

NVD PRIMARY 9.0 CRITICAL
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
vuln.today AI 9.0 CRITICAL

Link is delivered over the network (AV:N) to an authenticated user with specific permissions (PR:L) who must click it (UI:R); template execution escapes the app to the OS (S:C) giving full RCE (C/I/A:H).

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

DescriptionNVD

Frappe is a full-stack web application framework. Prior to versions 14.99.6 and 15.88.1, an authenticated user with specific permissions could be tricked into accessing a specially crafted link. This could lead to a malicious template being executed on the server, resulting in remote code execution. Versions 14.99.6 and 15.88.1 fix the issue. No known workarounds are available.

Executive ViewAI

Why It Matters

Frappe Framework, used by organizations to build and manage business applications, contains a critical server-side template injection vulnerability (CVE-2025-68929) that allows authenticated attackers to execute arbitrary code on the server. Exploitation requires valid credentials and tricking a privileged user into opening a crafted link, but successful attacks could lead to full compromise of confidentiality, integrity, and availability of affected systems. Leadership should prioritize patching because the vulnerability is severe and affects versions 14 before 14.99.6 and 15 before 15.88.1, with no workarounds available.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 59% exploitable
Prevalence
Medium
popular open-source framework underpinning ERPNext, common but not ubiquitous
Data Quality
4 sources
Confidence: Medium

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
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
Very High

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Affected Products (CPE)NVD

cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:*
cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:*

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

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