Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as user with template-edit + mass-email rights
-
ExploitCraft template referencing restricted ACL fields
-
ExecutionTrigger mass-email or group auto-reply rendering
-
ImpactReceive rendered output disclosing restricted user fields
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires an authenticated EspoCRM user who holds BOTH edit access to an email template AND mass-email sending access; alternatively, a regular user who can edit the template selected for an administrator-controlled group email auto-reply. The trigger is that per-user ACL application is disabled during mass-email/auto-reply rendering (the renderer called withApplyAcl(false)), so no filtering of FORBIDDEN/INTERNAL/ONLY_ADMIN fields occurs. Limiting factors: the attacker must already possess these specific privileges (not a default role for ordinary users), the product must be running a version prior to 10.0.3, and impact is limited to disclosure of restricted record/user fields - no code execution, data modification, or availability impact. No victim user interaction is required to trigger the rendering. |
| Impact | This is a moderate-severity information-disclosure flaw (CWE-639, broken access control) best characterized as a medium real-world priority rather than an urgent one. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N = 6.5) and the description agree on the key constraint: exploitation is network-reachable but requires an authenticated insider who already holds BOTH email-template edit access and mass-email sending access (PR:L), so this is an authorization-boundary bypass by a privileged-but-not-admin user, not a remote unauthenticated compromise. Publicly available exploit material exists (the GitHub Security Advisory GHSA-28w2-h88g-6vgv, the fix commit b3309f8, and the 10.0.3 release), which raises reproducibility, but there is no CISA KEV listing and no EPSS score was provided, so there is no evidence of active or widespread exploitation - exploitation status is 'publicly available exploit code exists,' which must not be conflated with in-the-wild activity. The impact is confined to disclosure (I:N/A:N); the vendor-assigned C:H reflects exposure of fields explicitly marked FORBIDDEN/INTERNAL/ONLY_ADMIN, though the practical sensitivity depends on which restricted user fields a given deployment holds. Net: a legitimate issue to patch promptly in multi-user EspoCRM installs, but the insider-privilege precondition and absence of KEV/EPSS signals argue against treating it as an emergency. |
| Exploit ScenarioDerived | A non-admin EspoCRM user who has been granted email-template editing and mass-email sending rights crafts a template that references record fields normally restricted by ACL (e.g. fields flagged internal or admin-only). Because the renderer stops applying per-user ACL filtering during mass-email/auto-reply rendering, the generated messages expose those restricted user fields to the attacker (and to recipients). A public advisory and fix commit document the exact behavior and the vulnerable code paths. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
EspoCRM versions prior to 10.0.3 can disclose restricted record and user fields to an authenticated user who holds both email-template edit access and mass-email sending access, because the template renderer stops applying per-user ACL filtering when messages are generated for mass email and for administrator-controlled group-email auto-replies. Only fields explicitly marked FORBIDDEN, INTERNAL, or ONLY_ADMIN are exposed, so the impact is limited to information disclosure with no code execution, data modification, or availability loss, consistent with the assessed vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N (6.5, authenticated remote). Publicly available exploit code exists for this issue, but the prerequisite privilege pairing is not part of a typical default non-administrative role, keeping real-world priority at medium rather than urgent.
RemediationAI
Apply the vendor-released patch by upgrading to EspoCRM 10.0.3 or later; the fix is contained in commit b3309f8b2060e77b377f672a30358a30b61f3111 (Htmlizer, MassEmail SendingProcessor, EmailTemplate Processor and associated unit tests), and the release is available at https://github.com/espocrm/espocrm/releases/tag/10.0.3, with technical details in the advisory at https://github.com/espocrm/espocrm/security/advisories/GHSA-28w2-h88g-6vgv. Where an immediate upgrade is not possible, the most effective compensating control is to break the required privilege pairing: audit roles and remove mass-email sending and email-template editing from any non-administrative role that does not strictly need them, accepting the workflow loss for marketing or support staff who rely on those functions. Similarly, ensure templates used for administrator-controlled group-email auto-replies are owned and editable only by administrators, and review existing templates for placeholders that reference ONLY_ADMIN, INTERNAL, or FORBIDDEN fields (for example, fields restricted to administrators) so those references are removed; this is a manual, incomplete control because the restriction list is not surfaced in the template editor. As a last resort, temporarily disabling the mass-email feature for untrusted roles stops the primary vector but also halts legitimate bulk communications. Because exploitation only reads restricted fields and leaves no modification traces, also treat historical mass-email and auto-reply logs as potentially containing leaked field values and rotate or reclassify sensitive data that may have been disclosed; note that no per-user interaction is required to trigger rendering, so exploit attempts will not appear as user-reported anomalies.
Affected VersionsENISA
Affected Packages
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
EspoCRM renders email bodies through the Htmlizer class in application/Espo/Core/Htmlizer/Htmlizer.php, which resolves template placeholders against entity records. Before 10.0.3, the forbidden-attribute and forbidden-link lookups in Htmlizer::prepare() and getForbiddenAttributes() were delegated to the per-user ACL object ($this->acl) and returned an empty list whenever that object was absent. Mass-email sending in application/Espo/Modules/Crm/Tools/MassEmail/SendingProcessor.php deliberately invokes the renderer with withApplyAcl(false) (the code comment was later revised to 'Has access to all fields'), and the group-email auto-reply path exhibits the same behavior. With per-user ACL disabled, the renderer never consulted the global restriction lists for TYPE_FORBIDDEN, TYPE_INTERNAL and TYPE_ONLY_ADMIN, so placeholders referencing those restricted attributes were resolved and their values emitted into the outbound message. The same gap existed in the email-template preview/preparation code in application/Espo/Tools/EmailTemplate/Processor.php, where processText() initialized $forbiddenAttributeList to an empty array and processLinks() passed an empty list when $skipAcl was true. The upstream commit b3309f8b2060e77b377f672a30358a30b61f3111 resolves this by injecting the global AclManager into Htmlizer and Processor and always computing the restricted attribute and link lists, so that global scope restrictions apply independently of the per-user ACL flag; unit tests in HtmlizerTest were updated to mock AclManager. The assigned CWE-639 (Authorization Bypass Through User-Controlled Key) frames the root cause as an access-control enforcement gap in which the effective authorization decision depends on renderer state rather than on the record-level restrictions that should always apply. The accompanying 'Authentication Bypass' tag reflects that the stricter global checks are skipped during rendering rather than a true authentication-mechanism bypass.
Know when Espocrm 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:N/A:N
Network-accessible web app (AV:N), reliable trigger (AC:L), requires a privileged non-admin user with template-edit and mass-email rights (PR:L), no admin interaction (UI:N); disclosure-only of restricted fields so C:H, I:N, A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
EspoCRM is an open source customer relationship management application. Prior to 10.0.3, a user with email-template edit access and mass-email sending access can reference restricted record fields in a template because the renderer stops filtering those fields when per-user ACL application is disabled. The same behavior affects group email auto-replies when a regular user can edit the selected template, even though an administrator controls the group email. Rendered messages can disclose restricted user fields. This issue is fixed in version 10.0.3.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Directory traversal vulnerability in EspoCRM before 2.6.0 allows remote attackers to include and execute arbitrary local
PHP object deserialization in EspoCRM versions prior to 9.3.7 lets an authenticated administrator achieve remote code ex
Path traversal in EspoCRM's formula scripting engine allows authenticated administrators to achieve arbitrary file read/
EspoCRM version 7.1.8 is vulnerable to Unrestricted File Upload allowing attackers to upload malicious file with any ext
EspoCRM 5.6.4 is vulnerable to user password hash enumeration. Rated high severity (CVSS 8.8), this vulnerability is rem
Authorization bypass in EspoCRM 5.8.5 lets an authenticated low-privilege user reuse or manipulate Basic-Authorization a
EspoCRM deployments before 10.0.5 allow an authenticated user with Email Account scope to retrieve other users' stored I
CSV Injection in Create Contacts in EspoCRM 7.1.8 allows remote authenticated users to run system commands via creating
Boolean-based blind SQL injection in EspoCRM versions 8.1.0 through 9.3.7 allows an authenticated non-administrator to i
Path traversal in EspoCRM admin template management allows authenticated administrators to read, create, overwrite, or d
Server-side request forgery in EspoCRM before 10.0.4 allows authenticated users to route outbound HTTP requests to inter
Stored cross-site scripting in EspoCRM 9.3.3 and below enables an authenticated attacker to execute arbitrary JavaScript
EUVD-2026-102110
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB