Skip to main content

EspoCRM CVE-2026-77460

| EUVDEUVD-2026-102110 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-15 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as user with template-edit + mass-email rights
  2. Exploit
    Craft template referencing restricted ACL fields
  3. Execution
    Trigger mass-email or group auto-reply rendering
  4. Impact
    Receive 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

espocrm < 10.0.3

Affected Packages

euvd espocrm fix: 10.0.3

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

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

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.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 16:02 EUVD
CVE Published
Oct 15, 2026 - 14:58 cve.org
MEDIUM 6.5

DescriptionCVE.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

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
popular open-source self-hosted CRM, moderate real-world footprint
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2014-7985 CRITICAL POC
10.0 Oct 31

Directory traversal vulnerability in EspoCRM before 2.6.0 allows remote attackers to include and execute arbitrary local

CVE-2026-47168 CRITICAL POC
9.1 Oct 15

PHP object deserialization in EspoCRM versions prior to 9.3.7 lets an authenticated administrator achieve remote code ex

CVE-2026-33656 CRITICAL POC
9.1 Apr 22

Path traversal in EspoCRM's formula scripting engine allows authenticated administrators to achieve arbitrary file read/

CVE-2022-38843 HIGH POC
8.8 Sep 16

EspoCRM version 7.1.8 is vulnerable to Unrestricted File Upload allowing attackers to upload malicious file with any ext

CVE-2019-14351 HIGH POC
8.8 Jul 28

EspoCRM 5.6.4 is vulnerable to user password hash enumeration. Rated high severity (CVSS 8.8), this vulnerability is rem

CVE-2020-37094 HIGH POC
8.6 Feb 03

Authorization bypass in EspoCRM 5.8.5 lets an authenticated low-privilege user reuse or manipulate Basic-Authorization a

CVE-2026-105833 HIGH POC
8.3 Oct 08

EspoCRM deployments before 10.0.5 allow an authenticated user with Email Account scope to retrieve other users' stored I

CVE-2022-38844 HIGH POC
8.0 Sep 16

CSV Injection in Create Contacts in EspoCRM 7.1.8 allows remote authenticated users to run system commands via creating

CVE-2026-53574 HIGH POC
7.6 Oct 15

Boolean-based blind SQL injection in EspoCRM versions 8.1.0 through 9.3.7 allows an authenticated non-administrator to i

CVE-2026-33733 HIGH POC
7.2 Apr 22

Path traversal in EspoCRM admin template management allows authenticated administrators to read, create, overwrite, or d

CVE-2026-88896 MEDIUM POC
6.9 Sep 10

Server-side request forgery in EspoCRM before 10.0.4 allows authenticated users to route outbound HTTP requests to inter

CVE-2026-33741 MEDIUM POC
6.8 May 19

Stored cross-site scripting in EspoCRM 9.3.3 and below enables an authenticated attacker to execute arbitrary JavaScript

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