CVE-2026-46694: EspoCRM: Portal User ACL Bypass Exposes Internal Stream Notes
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
EspoCRMto a version that resolves this vulnerability.Fixed in 9.3.7
Event History
Frequently Asked Questions
Who is exposed to this issue?
EspoCRM instances prior to 9.3.7 are affected where portal users have stream access to a parent record. The exposure is limited to internal stream notes associated with records those portal users can access.
What does an attacker need to exploit it?
An attacker needs portal-user credentials, stream access to the relevant parent record, and knowledge of the internal Note identifier. No user interaction is required.
Does normal stream browsing expose the internal notes?
No. Stream list responses correctly hide notes with the isInternal field set to true; the bypass occurs only through direct retrieval using the portal Note API.
What is the remediation?
Upgrade EspoCRM to version 9.3.7, which fixes the missing restriction in direct single-Note access checks.