An SSTI (Server-Side Template Injection) vulnerability exists in the get_contract_template method of Frappe ERPNext through 15.89.0. The function renders attacker-controlled Jinja2 templates (contract_terms) using frappe.render_template() with a user-supplied context (doc). Although Frappe uses a custom SandboxedEnvironment, several dangerous globals such as frappe.db.sql are still available in the execution context via get_safe_globals(). An authenticated attacker with access to create or modify a Contract Template can inject arbitrary Jinja expressions into the contract_terms field, resulting in server-side code execution within a restricted but still unsafe context. This vulnerability can be used to leak database information.
References
| Link | Resource |
|---|---|
| https://iamanc.github.io/post/erpnext-ssti-bug-2 | Exploit Third Party Advisory |
| https://www.notion.so/SSTI-bug-2-239e6086eadc80878e8fcc7b6c26a584?source=copy_link | Exploit Third Party Advisory |
Configurations
History
23 Dec 2025, 17:56
| Type | Values Removed | Values Added |
|---|---|---|
| CPE | cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:* | |
| First Time |
Frappe erpnext
Frappe |
|
| References | () https://iamanc.github.io/post/erpnext-ssti-bug-2 - Exploit, Third Party Advisory | |
| References | () https://www.notion.so/SSTI-bug-2-239e6086eadc80878e8fcc7b6c26a584?source=copy_link - Exploit, Third Party Advisory | |
| CWE | CWE-94 |
17 Dec 2025, 16:16
| Type | Values Removed | Values Added |
|---|---|---|
| CWE | CWE-1336 |
16 Dec 2025, 19:15
| Type | Values Removed | Values Added |
|---|---|---|
| CWE | CWE-918 | |
| CVSS |
v2 : v3 : |
v2 : unknown
v3 : 4.3 |
15 Dec 2025, 17:15
| Type | Values Removed | Values Added |
|---|---|---|
| New CVE |
Information
Published : 2025-12-15 17:15
Updated : 2025-12-23 17:56
NVD link : CVE-2025-66435
Mitre link : CVE-2025-66435
CVE.ORG link : CVE-2025-66435
JSON object : View
Products Affected
frappe
- erpnext
