Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain DjangoCRM account with mass-mail edit rights
-
DeliveryCraft EmlMessage with DTL payload in subject or content
-
ExploitTrigger preview or send via vulnerable render path
-
ExecutionDjango Template() executes injected template syntax
-
PersistResolve context objects (User ORM, request, CSRF token)
-
ImpactExfiltrate password hashes or forge CSRF-protected actions
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V1 - Encoding and Sanitization Template injection prevention
|
| Exploitation Conditions | Exploitation requires an account authenticated to DjangoCRM that holds the specific 'mass-mail message edit rights' permission within the massmail module - this is not a default permission for all authenticated users and must be explicitly assigned. The attacker must be able to create or modify EmlMessage objects (subject or content fields) and trigger rendering through a preview operation or email send action in one of the three affected code paths. The massmail module must be active in the DjangoCRM installation. Exploitation is strictly limited to users holding the mass-mail edit permission; unauthenticated users and authenticated users without this specific permission cannot reach the vulnerable code. The attack is platform-agnostic but requires a live DjangoCRM web instance. The CVSS vector PR:L confirms low-privilege authenticated access is the minimum bar - not PR:N - which is the primary limiting factor for attack surface exposure. |
| Impact | The CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N scores 8.1, which accurately reflects the network-accessible attack surface, low complexity, and dual high-impact outcomes. PR:L correctly captures the gating condition: exploitation requires an authenticated account with mass-mail edit rights, which is not the default for all users, partially mitigating real-world risk in well-administered deployments. The S:U (unchanged scope) rating is consistent with Django's DTL model, which does not grant arbitrary OS-level code execution by default, bounding the blast radius to the application tier. EPSS data is absent from the available intelligence, making exploitation probability quantification impossible. No CISA KEV listing is present and no POC exploit code has been identified, distinguishing this from actively exploited SSTI variants. The most operationally severe impacts are the password hash disclosure (enabling offline cracking) and CSRF token exfiltration (enabling authenticated action forgery against other users). Real-world priority is high for organizations where DjangoCRM mass-mail edit rights are delegated to non-administrative or semi-trusted users; lower in tightly controlled deployments where only system administrators hold that permission. |
| Exploit ScenarioDerived | An attacker authenticated to DjangoCRM with mass-mail edit rights creates an EmlMessage with a subject field containing a payload such as |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 05, 2026
Server-side template injection in DjangoCRM's massmail module allows authenticated users with mass-mail edit rights to execute arbitrary Django Template Language expressions by injecting syntax into EmlMessage subject and content fields, which are passed unsanitized to Django's Template() constructor across three separate code locations. Successful exploitation can disclose other users' account data and password hashes from Django request context variables, exfiltrate CSRF tokens enabling cross-site request forgery, and include arbitrary registered templates. No KEV listing or public exploit code has been identified at time of analysis, but the low attack complexity and high-confidence CVSS 8.1 rating indicate meaningful risk for deployments where mass-mail edit rights are granted to non-administrator users.
RemediationAI
The primary fix requires eliminating the pattern of passing user-supplied EmlMessage fields directly into Django's Template() constructor across all three affected files. The correct approach is to render subject and content fields as plain text using Django's built-in escaping mechanisms (e.g., django.utils.html.escape() or format_html()), never treating user input as a template source string. Until a patched release is available - no exact fix version has been confirmed from the available references - the most effective compensating control is to restrict the mass-mail message edit permission exclusively to trusted administrators via Django's permission system, ensuring untrusted authenticated users cannot supply EmlMessage fields. Monitor the upstream repository at https://github.com/DjangoCRM/django-crm for a fix commit or tagged release. If mass-mail functionality is non-essential, disabling the massmail module entirely eliminates the attack surface with no side effects beyond loss of bulk-mail capability. Do not rely on input validation of subject/content fields alone, as Django template injection bypasses can be subtle and validation-rule evasion is well-documented.
Affected VersionsENISA
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
Django's Template() class, when instantiated with attacker-controlled input, evaluates Django Template Language (DTL) expressions - variable resolution ({{ }}) and tag execution ({% %}) - against the full render context at the time of instantiation. Unlike Jinja2, DTL does not expose arbitrary Python builtins or exec() by default, but it does resolve all objects in the render context including the request object, session state, and ORM-accessible model instances such as User objects and their password hash fields. CWE-1336 (Improper Neutralization of Special Elements Used in a Template Engine) precisely describes the root cause: the application fails to distinguish user-supplied data from template code. The vulnerability is systemic, appearing independently in message_previews.py (f-string embedding message.subject/message.content into Template()), email_creators.py (eml_message.subject passed directly as a template string), and helpers.py (same f-string pattern), indicating the insecure pattern was replicated across the codebase rather than isolated to a single oversight. The affected repository is https://github.com/DjangoCRM/django-crm.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
PR:L reflects required mass-mail edit permission; C:H and I:H capture password hash disclosure and CSRF forgery; S:U because DTL execution stays within application tier; A:N as no availability impact is described.
Primary rating from Vendor (309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c).
CVSS VectorVendor: 309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c
DescriptionCVE.org
DjangoCRM's massmail module renders user-controlled EmlMessage fields (subject, content) through Django's Template() constructor with no sanitization, in at least three locations: message_previews.py builds an f-string embedding message.subject/message.content directly into a Template() call; email_creators.py passes eml_message.subject directly as a template string to Template(); and helpers.py contains the same f-string interpolation pattern. An authenticated user with mass-mail message edit rights can inject Django template syntax ({{ }} / {% %}) that executes at render time, enabling disclosure of other users' data and password hashes via request context variables, CSRF token forgery, and inclusion of arbitrary registered templates.
Executive ViewAI
A server-side template injection vulnerability in DjangoCRM's mass-mail module allows authenticated users with mass-mail edit privileges to steal password hashes, account credentials, and session tokens, enabling account compromise and data breach. Organizations permitting non-administrative staff to manage mass-mail communications face immediate risk of credential theft and unauthorized account access.
Restrict mass-mail edit permissions to administrators only; implement server-side input validation on subject and content fields to reject Django template delimiters and keywords; deploy WAF rules targeting template injection attack patterns; enable comprehensive logging of template processing errors and unauthorized database access attempts; disable the mass-mail module entirely if operationally feasible until vendor-released patch becomes available.
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
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
Rejetto HTTP File Server, up to and including version 2.3m, is vulnerable to a template injection vulnerability. Rated c
Invision Community 5.0.0 through 5.0.6 contains an unauthenticated remote code execution vulnerability in the template e
Remote code execution in the WPML WordPress multilingual plugin (versions up to and including 4.6.12) allows Contributor
Server-side template injection in Adobe Commerce, Adobe Commerce B2B, and Magento Open Source allows remote unauthentica
Server-Side Template Injection in OpenCTI notifier templates allows privileged administrators with 'Manage customization
Unauthenticated remote code execution in Rejetto HFS2 (HTTP File Server) through version 2.4.0 lets an attacker execute
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve
changedetection.io is an open source web page change detection, website watcher, restock monitor and notification servic
A server side template injection vulnerability in CrushFTP in all versions before 10.7.1 and 11.1.0 on all platforms all
Remote code execution in WGDashboard 4.3.2 and earlier lets authenticated attackers inject Server-Side Template Injectio
Gibbon through 26.0.00 allows /modules/School%20Admin/messengerSettings.php Server Side Template Injection leading to Re
Server-side template injection in the TYPO3 'Powermail' extension lets an anonymous user submit Fluid template syntax th
EUVD-2026-53312
GHSA-qwf5-72hq-pg7x
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB