Skip to main content

EspoCRM EUVDEUVD-2026-102094

| CVE-2026-46694 MEDIUM
Missing Authorization (CWE-862)
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 portal user with stream access
  2. Exploit
    Obtain or guess internal Note identifier
  3. Execution
    Call portal Note API for single Note directly
  4. Impact
    Read exposed internal agent content

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated EspoCRM portal user account that already has stream access to the relevant parent record, and the attacker must know (or guess) the specific internal Note's identifier. The flaw is confined to the portal Note API's direct single-Note read path, where the access check does not enforce the isInternal restriction; the stream list endpoint correctly hides internal notes and is not affected. Limiting factors: a valid portal credential is needed, the targeted note must have isInternal=true and belong to a record the user can reach via the stream, and the note ID must be known - there is no bulk enumeration described, so exposure is per-known-identifier rather than wholesale dumping. Versions prior to 9.3.7 are affected; 9.3.7 remediates it.

Impact

This is a moderate-severity information-disclosure flaw (CVSS 6.5, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) whose real-world risk is tempered by meaningful preconditions. The vector is network-reachable with low complexity and no user interaction, but PR:L confirms an authenticated portal account is required, so this is not a mass-exploitable unauthenticated bug. Publicly available exploit code exists (GitHub Security Advisory GHSA-cg9f-34hj-p238 plus the fixing commit), which lowers the barrier to weaponization, but there is no CISA KEV listing and no EPSS score was provided in the input, so there is no evidence of active exploitation - treat POC availability and active exploitation as distinct signals. No SSVC decision data was supplied. Impact is confidentiality-only (C:H, I:N, A:N): the attacker reads internal stream notes they should not see but cannot modify or deny service. Net assessment: a credible priority for EspoCRM operators who expose customer/partner portals, but a targeted, access-limited disclosure issue rather than a widespread remote-takeover emergency; patch prioritization should weigh how sensitive internal agent notes are in the given deployment.

Exploit ScenarioDerived

An attacker holding a legitimate portal account with stream access to a parent record (e.g., a customer portal login) calls the portal Note API directly to fetch a specific Note by its known identifier. Because the single-Note access check fails to honor the isInternal flag, the response returns internal agent-only content that is normally hidden from stream list responses. Public exploit material exists in the vendor's GitHub Security Advisory and fixing commit, making the required request straightforward to reproduce.

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

Information disclosure in EspoCRM's portal Note API allows an authenticated portal user (CVSS PR:L) who already has stream access to a parent record to retrieve internal agent notes by directly requesting a single Note by its known identifier; the stream list endpoint correctly filters notes where isInternal is true, but the direct single-Note read path fails to apply that restriction. Only EspoCRM versions prior to 9.3.7 are affected, and the issue is resolved in 9.3.7. Publicly available exploit code exists, but the practical risk is moderated by the preconditions: a valid portal credential, stream access to the relevant parent record, and knowledge of the specific note identifier - there is no described bulk enumeration, so exposure is per-known-identifier rather than wholesale dumping of internal content. No public exploit identified at time of analysis is contradicted here - exploitation code is public, but this is not confirmed as actively exploited (no CISA KEV listing).

RemediationAI

Upgrade EspoCRM to 9.3.7 or later, which is the vendor-released patch containing the missing-authorization guard in the portal Note access checker (release: https://github.com/espocrm/espocrm/releases/tag/9.3.7; advisory: https://github.com/espocrm/espocrm/security/advisories/GHSA-cg9f-34hj-p238; fix commit: https://github.com/espocrm/espocrm/commit/ee039bd22da9b6f5b768f31e7acece36596befb2). If immediate upgrade is not possible, apply the upstream change to checkEntityRead() in application/Espo/Classes/AclPortal/Note/AccessChecker.php so it returns false when $entity->isInternal() is true - this is a small, low-risk backport but must be re-applied or superseded on the next upgrade. Compensating controls carry trade-offs: audit and restrict portal user accounts and their stream access to only the records they genuinely need (reduces the reachable note surface but does not fix the direct-read flaw), and note that disabling the portal Note API entirely would block the leak but would also break legitimate portal comment/stream functionality; since exploitation requires knowing the specific note identifier, there is no reliable input-side block for arbitrary IDs, so patching remains the only complete fix. Rotating or reviewing portal credentials is advisable where exploit code is public.

Affected VersionsENISA

espocrm < 9.3.7

Affected Packages

euvd espocrm fix: 9.3.7

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 whose portal subsystem enforces record-level access through ACL portal access checkers. The vulnerable component is the portal-scoped Note access checker (application/Espo/Classes/AclPortal/Note/AccessChecker.php), which implements the entity read authorization path for Notes exposed through the portal API. Notes carry an isInternal boolean that marks agent-only stream entries; the list/stream retrieval path honors it, but checkEntityRead() for direct single-entity access did not, a classic CWE-862 Missing Authorization gap where one code path enforces a policy that a parallel path omits. The upstream fix adds an explicit if ($entity->isInternal()) { return false; } guard to checkEntityRead(), meaning the intended authorization model is 'portal users must never read internal notes', while the flawed implementation only enforced it in aggregate listing responses. The vulnerability is network-reachable (AV:N) with low attack complexity (AC:L), no user interaction (UI:N), and high confidentiality impact (C:H) but no integrity or availability impact (I:N/A:N), consistent with a read-only disclosure of internal agent communications. The CPE pattern cpe:2.3:a:espocrm:espocrm:*:*:*:*:*:*:*:* identifies EspoCRM as the sole affected product family across all pre-9.3.7 builds.

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-facing portal API (AV:N), no special conditions beyond a valid portal login (AC:L, PR:L, UI:N); confidentiality-only disclosure of internal notes (C:H, I:N, A:N) within the same system (S:U).

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:40 cve.org
MEDIUM 6.5

DescriptionCVE.org

EspoCRM is an open source customer relationship management application. Prior to 9.3.7, a portal user with stream access to a parent record can directly fetch a Note through the portal Note API and read an internal stream note when the note identifier is known. Stream list responses correctly hide notes whose isInternal field is true, but the direct single-Note access check does not enforce that restriction, exposing internal agent content. This issue is fixed in version 9.3.7.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
popular self-hosted open-source CRM, common but not ubiquitous enterprise 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-33656 CRITICAL POC
9.1 Apr 22

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

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