Severity by source
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Web-facing authenticated field yields AV:N/AC:L/PR:L/UI:N; the described impact is cross-scope data disclosure (S:C, C:H) with only incidental integrity and no availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
ERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.111.0 and 16.22.0, an authenticated user with a standard operational role can trigger server-side template injection through a configuration field, resulting in unauthorized disclosure of data outside the user's normal permission scope. This issue is fixed in versions 15.111.0 and 16.22.0.
AnalysisAI
Server-side template injection in Frappe ERPNext (versions before 15.111.0 and 16.22.0) lets an authenticated user holding only a standard operational role inject a malicious template payload into a configuration field, causing the server to render it and disclose data the user is not authorized to see. Because the flaw is rooted in an authorization failure (CWE-863), it effectively bypasses ERPNext's role/permission boundaries. No public exploit identified at time of analysis, and it is not listed in CISA KEV; a fixed release is available from the vendor.
Technical ContextAI
ERPNext is an open-source ERP platform built on the Frappe framework, which uses Jinja-style server-side templating to render configurable fields and print/format strings. When user-controllable input in a configuration field is passed into the template engine without proper sandboxing or authorization checks, an attacker can supply template expressions that execute in the server context - a classic server-side template injection. The assigned weakness, CWE-863 (Incorrect Authorization), indicates the core defect is that the rendered evaluation runs with access broader than the acting user's assigned role, allowing retrieval of records outside their permission scope. The affected component is identified by CPE cpe:2.3:a:frappe:erpnext across all versions prior to the fixed releases.
RemediationAI
Vendor-released patch: upgrade to ERPNext 15.111.0 if on the 15.x branch, or to 16.22.0 if on the 16.x branch, per advisory GHSA-pxf3-4gvc-v45j (https://github.com/frappe/erpnext/security/advisories/GHSA-pxf3-4gvc-v45j). Until the upgrade is applied, reduce exposure by tightening role permissions so that standard operational users cannot write to the configuration/template field involved, auditing which roles can edit templated configuration fields, and monitoring for template metacharacters (such as {{ }} or {% %}) submitted into those fields - note that restricting these permissions may disrupt legitimate users who normally customize those fields, so validate against your workflow before enforcing. Upgrading is strongly preferred, as configuration-field lockdown is a partial control that does not remove the underlying template evaluation flaw.
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
An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev
Frappe Framework ERPNext 13.4.0 contains a sandbox escape vulnerability in RestrictedPython that allows authenticated us
In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re
In Frappe ERPNext 15.57.5, the function get_stock_balance_for() at erpnext/stock/doctype/stock_reconciliation/stock_reco
In Frappe ERPNext 15.57.5, the function get_blanket_orders() at erpnext/controllers/queries.py is vulnerable to SQL Inje
In Frappe ERPNext 15.57.5, the function get_material_requests_based_on_supplier() at erpnext/stock/doctype/material_requ
A Cross-Site Request Forgery (CSRF) vulnerability was discovered in ERPNEXT 14.82.1 and 14.74.3. Rated high severity (CV
Same weakness CWE-863 – Incorrect Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-44704