Skip to main content

ERPNext EUVDEUVD-2026-55833

| CVE-2026-72911 CRITICAL
Improper Neutralization of Special Elements Used in a Template Engine (CWE-1336)
2026-08-10 security-advisories@github.com
9.9
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with operational role
  2. Delivery
    Inject Jinja expression into statement fields
  3. Exploit
    Trigger validation/email rendering
  4. Execution
    Template engine evaluates with frappe.utils globals
  5. Persist
    Execute arbitrary server-side code
  6. Impact
    Read data across application

Vulnerability Assessment

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

Exploitation requires an authenticated ERPNext account with a common operational role that can create or edit Process Statement of Accounts records - the attacker must be able to write into the subject, body, or pdf_name fields of that specific doctype. Code executes when those fields are rendered, i.e. at document validation and when send_emails generates the statement, so the attacker needs the record to be validated/processed (which the standard statement workflow performs). Limiting factors: valid low-privilege credentials are mandatory (PR:L, so not remote-unauthenticated), and exploitation is confined to instances where users with access to this feature exist; the vulnerable pre-restrict_globals code path is present only in versions before 15.118.0 / 16.29.0. No user interaction from a victim and no non-default configuration is required.

Impact

All signals point to a genuine high priority rather than an inflated CVSS. The vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H describes network-reachable, low-complexity, no-user-interaction exploitation requiring only low privileges (PR:L) - consistent with the description's 'authenticated user with a common operational role.' The scope change (S:C) reflects that template code execution escapes the document context into the underlying server/application. SSTI leading to code execution is inherently reliable to weaponize, aligning with the RCE/SSTI tags. No EPSS score, KEV entry, or public POC was provided, so real-world exploitation is unconfirmed; the absence of KEV plus a fresh patch suggests no confirmed active exploitation yet, but the low bar to exploit warrants urgent remediation. The only meaningful barrier is that an attacker must first hold a valid low-privilege account with access to the Process Statement of Accounts doctype.

Exploit ScenarioDerived

An attacker holding a routine ERPNext operational account opens a Process Statement of Accounts record and enters a malicious Jinja expression (e.g., referencing frappe.utils) into the subject, body, or pdf_name field. When the record is validated or the statement email is generated and sent, the template engine evaluates the expression with unrestricted globals, executing the attacker's code on the ERPNext server. No public POC was provided, but SSTI of this form is straightforward to weaponize given AV:N/AC:L and no required user interaction.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 10, 2026

Server-side template injection in ERPNext's Process Statement of Accounts feature (versions prior to 15.118.0 and 16.29.0) lets an authenticated user with a common operational role inject Jinja template expressions into the subject, body, and pdf_name fields, which are rendered with unrestricted globals including frappe.utils, yielding arbitrary server-side code execution. Tagged RCE/SSTI (CWE-1336) and rated CVSS 9.9 with scope change; no public exploit identified at time of analysis, but the trivial exploitation path and low privilege requirement make this a high-priority patch.

RemediationAI

Upgrade to a fixed release: ERPNext 15.118.0 for the v15 branch or 16.29.0 for the v16 branch (Vendor-released patch: 15.118.0 / 16.29.0), which add restrict_globals=True to the validate_template and render_template calls in process_statement_of_accounts.py - see the advisory at https://github.com/frappe/erpnext/security/advisories/GHSA-qq49-v74j-hjh7 and PR https://github.com/frappe/erpnext/pull/56458 (commits 5f6952b, 88443e4, ecb6d48). If immediate upgrade is not possible, restrict which roles can create or edit Process Statement of Accounts records to trusted administrators only, and audit existing records' subject, body, and pdf_name fields for injected template expressions before scheduled emails run; the trade-off is that limiting the doctype's permissions may disrupt legitimate finance/operations users who rely on customized statement templates.

Affected VersionsENISA

ERPNext < 15.118.0
ERPNext 16.0.0, < 16.29.0

Affected Packages

euvd erpnext fix: 15.118.0, 16.29.0

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

ERPNext is built on the Frappe framework, which uses Jinja templating via frappe.render_template and validates templates with validate_template. In the affected code path (erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py), these calls were invoked without the restrict_globals flag, so the template sandbox exposed the full set of Python globals, including the frappe.utils module. This is a classic CWE-1336 (Server-Side Template Injection / improper neutralization of special elements used in a template engine) issue: attacker-controlled document fields flow directly into the template engine, letting expression syntax reach code-execution primitives. The fix adds restrict_globals=True to both validate_template (at validate time) and frappe.render_template (in send_emails), constraining the accessible globals.

Know when Ssti 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 (github) PRIMARY 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.9 CRITICAL

Network-reachable web app, low complexity, and only a common operational role (PR:L) with no user interaction; template code execution escapes document scope (S:C) giving full C/I/A impact.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

2
Patch available
Aug 10, 2026 - 22:04 EUVD
CVE Published
Aug 10, 2026 - 21:17 cve.org
CRITICAL 9.9

DescriptionCVE.org

ERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.118.0 and 16.29.0, the validate_template and render_template calls in erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py render subject, body, and pdf_name fields with unrestricted globals including frappe.utils, allowing an authenticated user with a common operational role to inject template expressions, execute arbitrary server-side code, and read data across the application. This issue is fixed in versions 15.118.0 and 16.29.0.

Executive ViewAI

Why It Matters

ERPNext versions prior to 15.118.0 and 16.29.0 contain a critical remote code execution vulnerability in the Process Statement of Accounts feature that allows authenticated operational users to execute arbitrary code on the server. Any organization running affected ERPNext versions faces immediate risk of complete server compromise and data exfiltration. Leadership should prioritize emergency access restrictions and upgrade planning to prevent exploitation.

Business Impact: Severe
Compensating Controls

Until patched versions of ERPNext can be deployed: (1) immediately revoke user access to the Process Statement of Accounts feature for all non-administrator roles; (2) implement network detection rules and WAF policies blocking requests containing Jinja template syntax (e.g., '{{', '{%', 'frappe.utils') to this API endpoint; (3) enable and alert on comprehensive API request logging for this feature; (4) implement network segmentation to isolate ERPNext application servers and limit lateral movement if RCE occurs; (5) establish continuous monitoring for abnormal process execution, network connections, and credential usage on affected servers.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Medium
widely used open-source ERP, but narrower footprint than ubiquitous infrastructure
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.4%
Patch available Yes
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +50
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.

More in Ssti

View all
CVE-2024-23692 CRITICAL POC
9.8 May 31

Rejetto HTTP File Server, up to and including version 2.3m, is vulnerable to a template injection vulnerability. Rated c

CVE-2025-47916 CRITICAL POC
10.0 May 16

Invision Community 5.0.0 through 5.0.6 contains an unauthenticated remote code execution vulnerability in the template e

CVE-2024-6386 CRITICAL POC
9.9 Aug 21

Remote code execution in the WPML WordPress multilingual plugin (versions up to and including 4.6.12) allows Contributor

CVE-2026-75650 CRITICAL POC
10.0 Sep 07

Server-side template injection in Adobe Commerce, Adobe Commerce B2B, and Magento Open Source allows remote unauthentica

CVE-2026-39980 CRITICAL POC
9.1 Apr 09

Server-Side Template Injection in OpenCTI notifier templates allows privileged administrators with 'Manage customization

CVE-2026-97359 CRITICAL POC
10.0 Sep 24

Unauthenticated remote code execution in Rejetto HFS2 (HTTP File Server) through version 2.4.0 lets an attacker execute

CVE-2025-23211 CRITICAL POC
9.9 Jan 28

Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve

CVE-2024-32651 CRITICAL POC
10.0 Apr 26

changedetection.io is an open source web page change detection, website watcher, restock monitor and notification servic

CVE-2024-4040 CRITICAL POC
10.0 Apr 22

A server side template injection vulnerability in CrushFTP in all versions before 10.7.1 and 11.1.0 on all platforms all

CVE-2026-15734 CRITICAL POC
9.8 Aug 06

Remote code execution in WGDashboard 4.3.2 and earlier lets authenticated attackers inject Server-Side Template Injectio

CVE-2024-24724 CRITICAL POC
9.8 Apr 03

Gibbon through 26.0.00 allows /modules/School%20Admin/messengerSettings.php Server Side Template Injection leading to Re

CVE-2026-77136 CRITICAL POC
9.5 Aug 25

Server-side template injection in the TYPO3 'Powermail' extension lets an anonymous user submit Fluid template syntax th

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