Skip to main content

EspoCRM CVE-2026-53575

| EUVDEUVD-2026-102103 LOW
Cross-site Scripting (XSS) (CWE-79)
2026-10-15 GitHub_M
2.7
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 EspoCRM administrator
  2. Delivery
    Inject payload into applicationName setting via CSP nonce injection
  3. Exploit
    Payload rendered unescaped on main app page
  4. Execution
    Victim user loads application, script executes in session
  5. Impact
    Exfiltrate page data and unsaved user input

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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 administrator (CVSS PR:H) who can modify the applicationName configuration setting; the crafted content is injected via CSP nonce injection and rendered unescaped into the main application page, where it persists for all users. The decisive limiting factor is the administrator privilege requirement - this is not a remote unauthenticated flaw, and the attacker must already hold the highest application privilege. A second limiting factor is that impact is confined to script execution in users' browser sessions leaking page data and unsaved input (C:L, I:N, A:N); there is no server-side code execution or integrity/availability impact. Affected: all EspoCRM versions prior to 9.3.9; fixed in 9.3.9.

Impact

This is a genuinely low-priority issue despite having a publicly available POC. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N, score 2.7) correctly reflects the core limitation: exploitation requires PR:H - an authenticated administrator - who must deliberately place crafted content into the applicationName setting. An admin already has full control over the application, so the attacker and the privileged victim-population are effectively the same trust tier; the realistic threat is an admin targeting lower-privileged users' sessions, or a compromised/rogue admin account, not arbitrary remote exploitation. No EPSS score was provided in the input, and the CVE is NOT in CISA KEV (no confirmed active exploitation). POC code exists (vendor GitHub security advisory plus the fixing commit), which raises reproducibility but does not indicate in-the-wild use - these are distinct signals. The low confidentiality-only impact (C:L, I:N, A:N) matches a persistent XSS that leaks page data/unsaved input rather than granting code execution or full account takeover. No SSVC decision data was supplied. Overall: high reproducibility but very low privilege-adjusted risk; the PR:H gate is the decisive de-prioritizing factor and the CVSS score of 2.7 is credible.

Exploit ScenarioDerived

A malicious or compromised EspoCRM administrator sets the applicationName configuration value to a payload that abuses CSP nonce injection, which is then rendered unescaped into the main application page served to all users. When a regular user loads the application, the attacker-controlled JavaScript executes in their session and exfiltrates page data, including unsaved form input. A public POC exists in the vendor's GitHub security advisory (GHSA-f34h-xxmv-j9xp) and the fixing commit, so exploitation is readily reproducible, though it still requires the high administrator privilege level indicated by CVSS PR:H.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.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

Stored cross-site scripting in EspoCRM (all versions prior to 9.3.9) lets an authenticated administrator inject JavaScript that executes in every user's browser session by placing crafted content in the applicationName setting and abusing CSP nonce injection. The payload is persisted in the main application page without escaping, so it executes for all users who load the application and can leak page data including unsaved form input. Publicly available exploit code exists, but exploitation requires the highest application privilege (administrator), and impact is limited to confidentiality (C:L) with no integrity or availability effect, making this a genuinely low-priority issue despite the available POC.

RemediationAI

Vendor-released patch: upgrade to EspoCRM 9.3.9 (release tag https://github.com/espocrm/espocrm/releases/tag/9.3.9), which incorporates the escaping fix in application/Espo/Core/Utils/ClientManager.php from commit ce73338ea7b463914e1271f16f8f73131ace886f and is described in advisory https://github.com/espocrm/espocrm/security/advisories/GHSA-f34h-xxmv-j9xp; verify the deployed ClientManager.php contains the escapeValue() helper applying htmlspecialchars with ENT_QUOTES | ENT_SUBSTITUTE plus curly-brace encoding, since incomplete backports will not close the CSP nonce injection path. On instances that cannot be upgraded immediately, compensate by auditing and hard-resetting the applicationName (and applicationDescription) settings to plain, trusted ASCII values, and by tightly restricting administrator accounts - the flaw only works through an admin-controlled setting, so removing standing admin access from non-essential users materially reduces exposure; the trade-off is operational friction and no guarantee that a compromised or malicious admin will not re-inject. Strengthening Content-Security-Policy headers with a strict script-src and avoiding unsafe-inline/unsafe-eval can blunt payload execution but is a defense-in-depth measure that must not be treated as a substitute for the 9.3.9 update, and it may break legitimate EspoCRM front-end functionality. Because a public POC exists, prioritize the upgrade over detection-only monitoring, and note that exploitation yields confidentiality-only impact, so no server-side integrity or availability remediation is required.

Affected VersionsENISA

espocrm < 9.3.9

Affected Packages

euvd espocrm fix: 9.3.9

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 front-end pages are assembled server-side by Espo\Core\Utils\ClientManager, which renders configuration values such as applicationName and applicationDescription into the main HTML page alongside metadata (ajaxTimeout, favicon data). This is a CWE-79 cross-site scripting flaw with two contributing weaknesses: configuration values were substituted into the rendered page template without HTML escaping, and the CSP nonce mechanism used by the page was subject to injection, so an attacker-supplied value could break out of the intended nonce/attribute context and introduce attacker-controlled JavaScript. Because the value is read from the persistent applicationName configuration setting, the script is stored and delivered to every user session rather than being reflected. The upstream fix (commit ce73338ea7b463914e1271f16f8f73131ace886f) introduces an escapeValue() helper that applies htmlspecialchars with ENT_QUOTES | ENT_SUBSTITUTE in UTF-8 and additionally encodes curly braces as &#123;/&#125; to neutralize templating/handlebar-style placeholder injection, and casts ajaxTimeout to int; the commit diff also carries a TODO to migrate rendering to Handlebars. Per the assessed vector CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N, network reachability is required, no user interaction is needed beyond loading the page, and the scope is unchanged, but privileges required are high (administrator) and the resulting impact is confidentiality-only.

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 2.7 LOW
AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 2.7 LOW

Stored XSS requires administrator write access to the applicationName config so PR:H; network-delivered and low-complexity with no UI for the admin injector, confidentiality-only session data leakage so C:L, I:N, A:N.

3.1 AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/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
High
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 16:02 EUVD
CVE Published
Oct 15, 2026 - 14:47 cve.org
LOW 2.7

DescriptionCVE.org

EspoCRM is an open source customer relationship management application. Prior to 9.3.9, an authenticated administrator can place crafted content in the applicationName setting through CSP nonce injection. The persistent injection is inserted into the main application page without escaping, allowing attacker-controlled JavaScript to run in users' sessions and leak page data, including unsaved user input. This issue is fixed in version 9.3.9.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Low
open-source CRM with modest, niche self-hosted deployment 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 LOW
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Low
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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