Skip to main content

EspoCRM CVE-2026-33740

| EUVDEUVD-2026-22098 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-04-13 GitHub_M
5.4
CVSS 3.1 · GitHub Advisory
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege EspoCRM user
  2. Delivery
    Enumerate victim attachment ID from stream API or UI
  3. Exploit
    Craft POST /api/v1/Email/importEml with victim fileId
  4. Execution
    Bypass missing ACL check in import endpoint
  5. Persist
    Read victim .eml contents imported into attacker mailbox
  6. Impact
    Victim attachment record permanently deleted as side effect

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 account with both Email:create and Import permissions explicitly granted by an administrator - these are non-default role permissions. The attacker must also possess a valid attachment ID belonging to another user; however, such IDs are commonly disclosed in normal application use via stream API payloads and attachment download links, substantially lowering the enumeration barrier. Exploitation is confined to the POST /api/v1/Email/importEml endpoint; the standard attachment download path already enforces ACL checks and is not affected. Unauthenticated actors cannot exploit this vulnerability. Users without the Email:create and Import permission combination are similarly excluded from the attack surface.

Impact

The CVSS 3.1 score of 5.4 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N) correctly models this as network-reachable, low-complexity, and requiring authenticated low-privilege access. The integrity impact (I:L) deserves specific attention: the victim's original attachment record is permanently deleted as a side effect of the import flow, which may be treated as more impactful than the C:L confidentiality score alone implies in environments relying on email evidence retention. EPSS at 0.02% (5th percentile) and SSVC's 'Automatable: no' designation together indicate very low scanning or opportunistic exploitation pressure at time of analysis. The vulnerability is not in CISA KEV, meaning no confirmed active exploitation in production environments. However, a public PoC exists via the vendor advisory, and practical exploitability is elevated because attachment IDs are routinely exposed through stream API payloads and download links during normal EspoCRM use - reducing attacker reconnaissance burden significantly. The most realistic risk scenario is an insider threat or a compromised low-privilege account in a multi-tenant deployment where sensitive business communications are stored as email attachments.

Exploit ScenarioDerived

An attacker with a low-privilege EspoCRM account (Email:create and Import permissions assigned) observes a colleague's attachment ID in a shared email thread's stream API payload or intercepts it from a download link. The attacker crafts a POST to /api/v1/Email/importEml supplying the victim's fileId, bypassing ACL validation, and retrieves the victim's .eml attachment contents imported into their own mailbox - while the victim's original attachment record is permanently deleted. A public proof-of-concept is referenced in the vendor advisory at GHSA-wr7j-hxf8-hc4w.

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

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

Alert me

AnalysisAIv1 – Jul 24, 2026

Insecure Direct Object Reference in EspoCRM 9.3.3 and earlier allows any authenticated user holding Email:create and Import permissions to read arbitrary attachment records owned by other users via the POST /api/v1/Email/importEml endpoint. The attacker supplies a victim's fileId, which the endpoint accepted without ACL validation and passed directly to the import service - importing the victim's .eml contents into the attacker's mailbox while simultaneously deleting the original victim attachment record as a side effect. A public proof-of-concept is available via the vendor's GitHub security advisory; EPSS remains at 0.02% (5th percentile), consistent with SSVC's 'Automatable: no' designation and no confirmed active exploitation at time of analysis.

RemediationAI

Vendor-released patch: EspoCRM 9.3.4, available at https://github.com/espocrm/espocrm/releases/tag/9.3.4. The fix commit (https://github.com/espocrm/espocrm/commit/88e3ba6a7b5cab5dbc2298e2a093d3aa383aa95f) introduces ACL enforcement in the API layer via checkEntityRead() before any attachment is accessed. If immediate upgrade is not feasible, revoke Email:create and Import permissions from all non-administrative roles as a compensating control - this eliminates the exploitable permission combination but will prevent legitimate EML import workflows for affected users. Disabling EML import at the role/ACL level is more targeted and less disruptive than blanket permission removal. No network-layer workaround is effective given the vulnerability requires only standard authenticated API access.

Affected VersionsENISA

espocrm < 9.3.4

Affected Packages

euvd espocrm fix: 9.3.4

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 is a PHP-based open-source CRM platform. The flaw resides in PostImportEml.php, which previously accepted a raw fileId string and forwarded it to ImportEmlService::import() with no authorization check on the referenced Attachment entity. The commit diff (88e3ba6) confirms the fix: a new getAttachment() method was introduced in the API layer that fetches the entity via EntityManager and calls $this->acl->checkEntityRead($attachment) before proceeding - mirroring the authorization logic already enforced on standard attachment download endpoints. CWE-639 (Authorization Through User-Controlled Key) is the precise root cause: the application used an attacker-controlled identifier to directly reference a persisted object without verifying the requesting user's rights, bypassing the ACL layer entirely. The affected CPE is cpe:2.3:a:espocrm:espocrm:*:*:*:*:*:*:*:*, covering all releases prior to 9.3.4.

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

GitHub Advisory PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Network API endpoint requires low-privilege authenticated access (PR:L); IDOR yields single-file confidentiality read (C:L) and incidental victim attachment deletion (I:L), no availability impact.

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

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

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

Lifecycle Timeline

3
PoC Detected
Apr 22, 2026 - 00:04 vuln.today
Public exploit code
Patch released
Apr 14, 2026 - 02:30 nvd
Patch available
CVE Published
Apr 13, 2026 - 20:37 nvd
MEDIUM 5.4

DescriptionGitHub Advisory

EspoCRM is an open source customer relationship management application. In versions 9.3.3 and below, the POST /api/v1/Email/importEml endpoint contains an Insecure Direct Object Reference (IDOR) vulnerability where the attacker-supplied fileId parameter is used to fetch any attachment directly from the repository without verifying that the current user has authorization to access it. Any authenticated user with Email:create and Import permissions can exploit this to read another user's .eml attachment contents by importing them as a new email into the attacker's mailbox, while the original victim attachment record is deleted as a side effect of the import flow. This is inconsistent with the standard attachment download path, which enforces ACL checks before returning file data, and is practically exploitable because attachment IDs are commonly exposed in normal UI and API workflows such as stream payloads and download links. This issue is fixed in version 9.3.4.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Prevalence
Low
niche open-source CRM, limited enterprise production footprint
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

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.0%
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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