Skip to main content

EspoCRM EUVDEUVD-2026-102096

| CVE-2026-47168 CRITICAL
Deserialization of Untrusted Data (CWE-502)
2026-10-15 GitHub_M
9.1
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
    Craft malicious serialized PHP object
  3. Exploit
    Store payload in MassAction/Export params
  4. Execution
    Trigger background deserialization (no class restriction)
  5. Persist
    Instantiate gadget chain
  6. Impact
    Execute arbitrary code on server

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

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 account (per CVSS PR:H and the description's 'authenticated administrator'); without admin access the crafted serialized payload cannot be placed into the background MassAction or Export parameters that are subsequently deserialized. The specific sink is the unserialize() call in Espo\Core\MassAction\Params and Espo\Tools\Export\Params (via Entities\MassAction and Entities\Export), which in versions prior to 9.3.7 did not pass an allowed_classes restriction, permitting arbitrary object instantiation. Successful code execution additionally depends on a usable PHP gadget chain being reachable in the deployed codebase/dependencies. The primary limiting factor is the administrator privilege prerequisite; no additional user interaction is required (UI:N), and the affected feature (MassAction/Export) is standard functionality rather than a non-default option.

Impact

This is a genuine high-severity flaw but with an important access caveat that tempers real-world urgency. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H = 9.1 Critical) accurately reflects an unsafe PHP deserialization (CWE-502) yielding server code execution, but PR:H confirms the attacker must already hold authenticated administrator privileges - a significant barrier that moves this from a mass-exploitable internet threat toward a post-compromise or insider/privilege-abuse scenario. Public exploit material exists (the vendor advisory GHSA-7q78-jjr9-mqcg plus the fixing commit f48d1d2, which clearly reveals the unsanitized unserialize() calls), raising the practical exploitation likelihood for anyone who gains admin access. No EPSS score, SSVC decision, or CISA KEV data was provided in the input, so exploitation-probability and automatable signals cannot be weighed - absence of KEV means there is no confirmation of active exploitation. Net: a real priority to patch for any EspoCRM operator because admin credentials are frequently obtainable via phishing, credential reuse, or chained lower-privilege bugs, but the PR:H requirement means it is not a drive-by, wormable internet-facing threat in the way a PR:N RCE would be.

Exploit ScenarioDerived

An attacker who has obtained EspoCRM administrator access (via stolen credentials, a compromised admin account, or a malicious insider) crafts a serialized PHP object payload and submits it so it is stored in background MassAction or Export parameters. When the application later deserializes that data without restricting allowed classes, the attacker-controlled object is instantiated, triggering a gadget chain that executes arbitrary code on the server. Publicly available exploit references (vendor advisory and the fixing commit) make reproducing this straightforward.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
3 public PoCs Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 15, 2026

PHP object deserialization in EspoCRM versions prior to 9.3.7 lets an authenticated administrator achieve remote code execution by storing crafted serialized object data in background MassAction or Export parameters that the application later unserializes without any allowed-class restriction. The deserialization sinks are reachable over the network (AV:N) with no user interaction (UI:N), and an attacker with admin credentials can instantiate arbitrary PHP objects and execute code, provided a usable gadget chain is reachable in the deployed codebase or its dependencies. Publicly available exploit code exists, and the vendor released a fix in version 9.3.7; the practical limiting factor is the administrator-privilege prerequisite (PR:H), which tempers real-world urgency even though the flaw is rated 9.1.

RemediationAI

Upgrade to EspoCRM 9.3.7 or later (vendor-released patch: 9.3.7), which introduces fromSerializedRaw() helpers that pass an explicit allowed_classes allowlist (Params::class, and SearchParams::class for nested searchParams) into unserialize(); see the fixed release at https://github.com/espocrm/espocrm/releases/tag/9.3.7 and the fix commit at https://github.com/espocrm/espocrm/commit/f48d1d26ffa05eac07ef72bb7f00f67a851184e1, with full details in advisory GHSA-7q78-jjr9-mqcg. Until upgrading, treat administrative accounts as the trust boundary: enforce least-privilege and separate admin accounts, remove or disable unused administrator logins, require MFA on admin users, and audit admin-role assignments, since the attack prerequisite is the ability to place a crafted serialized payload into MassAction/Export parameters. If the Export and MassAction features are not operationally required, restricting administrative access to them (via role permissions or an access-controlling reverse proxy) removes the injection path, at the cost of disabling bulk actions and exports for legitimate users; a WAF rule that inspects base64-encoded body parameters for PHP serialization markers (e.g. 'O:' tokens) before they are persisted offers partial, bypassable protection only, and note that PHP-level hardening (disabling dangerous gadget classes, restricting unserialize) is not available globally without breaking the intended Espo parameter deserialization.

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

The root cause is CWE-502 (Deserialization of Untrusted Data). EspoCRM's background job machinery persists MassAction and Export request parameters as base64-encoded serialized PHP objects; on resume or retrieval, application/Espo/Core/MassAction/Params.php and application/Espo/Tools/Export/Params.php called PHP's unserialize() on that data without an allowed_classes option, meaning any class present in the autoloadable codebase could be instantiated and its magic methods (__wakeup, __destruct, __toString, etc.) triggered. The Espo\Entities\MassAction and Espo\Entities\Export getParams() methods decoded and unserialized the stored raw payload, so the injection point is the stored parameter string and the sink is the unserialize() call. Commit f48d1d26ffa05eac07ef72bb7f00f67a851184e1 hardens this by routing both flows through new fromSerializedRaw() helpers that pass ['allowed_classes' => [Params::class]] (and SearchParams::class for the nested searchParams field), confining unserialization to the intended Espo parameter types. The CVSS scope change (S:C) reflects that a successful object injection would escape the component's security context and compromise the underlying PHP process and host.

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

Admin-only feature forces PR:H; attack is remote over HTTP (AV:N) with no special timing (AC:L); PHP object injection yields full RCE breaking out of the app sandbox, so S:C and C/I/A:H.

3.1 AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/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
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 16:02 EUVD
CVE Published
Oct 15, 2026 - 14:42 cve.org
CRITICAL 9.1

DescriptionCVE.org

EspoCRM is an open source customer relationship management application. Prior to 9.3.7, an authenticated administrator can supply crafted serialized PHP object data that is stored in background MassAction or Export parameters and later deserialized by the application. The deserialization paths do not restrict allowed classes, allowing attacker-controlled object instantiation and arbitrary code execution on the server. This issue is fixed in version 9.3.7.

Technical POC Analysis

CWE-502: Deserialization of Untrusted Data.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

3 public PoC links from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

EspoCRM deployments running versions earlier than 9.3.7 carry a critical remote code execution flaw that allows anyone holding administrator credentials to run arbitrary code on the server through ordinary background job and export functions. Because administrative access is already highly privileged, the practical exposure is concentrated in insider risk, credential compromise, and third-party or contractor accounts rather than anonymous external attackers, but a successful exploitation would put all CRM customer and business data at risk. Leadership should care because publicly available exploit code now lowers the skill required to weaponize this flaw the moment admin credentials are obtained.

Business Impact: High
Compensating Controls

Apply vendor patch (upgrade to 9.3.7 or later); until the upgrade is complete, restrict administrative access to trusted networks, enforce multi-factor authentication, and monitor administrative job and export activity.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
niche self-hosted open-source CRM, limited broad enterprise footprint
Data Quality
4 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 CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
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· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

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

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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

CVE-2026-46694 MEDIUM POC
6.5 Oct 15

Information disclosure in EspoCRM's portal Note API allows an authenticated portal user (CVSS PR:L) who already has stre

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