Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Dolibarr with field-write rights
-
DeliveryStore serialized PHP object in extrafield/export/log entry
-
ExploitTrigger jsonOrUnserialize() fallback to unserialize()
-
ExecutionInstantiate gadget-chain object
-
ImpactAchieve code execution or file manipulation
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 Dolibarr account (prior to version 23.0.4) with permissions to write one of the specific attacker-controlled sinks named in the advisory: stored extrafields, export configurations, or blocked log entries. The payload only reaches the vulnerable unserialize() call inside jsonOrUnserialize() when the stored value is NOT valid JSON (json_decode() must fail first), triggering the backward-compatibility fallback that deserializes without class restrictions. Successful code execution further depends on a usable PHP gadget chain being present in the loaded application/framework classes. Limiting factors: no unauthenticated path (PR:H), elevated write privileges on the targeted field are mandatory, and the attack complexity is high (AC:H/AT:P) because the attacker must both supply a non-JSON serialized payload and chain existing gadgets. Instances are only patched by upgrading to Dolibarr 23.0.4 or later. |
| Impact | This is a credible but conditional risk rather than a drop-everything emergency. The vendor-supplied CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:H/UI:N, VC:H/VI:H/VA:H) scores 7.5 and is internally consistent with the description: the vulnerability is network-reachable (it lives in a web application), but exploitation is gated behind high privileges (PR:H) and non-trivial preconditions (AC:H plus AT:P), namely the ability to write stored extrafields, export configurations, or blocked log entries - all operations that in Dolibarr require an authenticated, reasonably privileged user. The technical impact is full compromise (confidentiality, integrity and availability all High) because a successful PHP object injection can reach gadget chains for code execution or arbitrary file manipulation, which is consistent with the CWE-502 classification. Weighing the signals: no EPSS score was supplied, the CVE is NOT in CISA KEV, and no public proof-of-concept is referenced, so there is no evidence of active or imminent widespread exploitation. The dominant real-world limiter is the PR:H requirement combined with the need to reach an unserialize() path that only triggers when json_decode() fails - this is a classic post-authentication privilege-to-RCE escalation, most dangerous in multi-tenant or lower-trust-user Dolibarr deployments where a low-integrity authenticated account can nonetheless write the relevant fields. Net: a real priority for exposed/multi-user Dolibarr instances because a patch exists and the impact is RCE, but the authentication and complexity gates place it below an unauthenticated-RCE emergency. |
| Exploit ScenarioDerived | An authenticated Dolibarr user with sufficient rights to edit a stored extrafield, an export configuration, or a blocked log entry writes a crafted serialized PHP object string into that field. When Dolibarr later retrieves the value and jsonOrUnserialize() runs, json_decode() fails on the non-JSON payload and the code falls back to unserialize() with no class restrictions, instantiating the attacker's object and triggering an available gadget chain for code execution or file manipulation. No public exploit code is referenced in the provided data, so weaponization effort would currently fall on the attacker. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Authenticated Dolibarr users with privileges to write extrafields, export configurations, or blocked log entries can trigger PHP object injection in versions before 23.0.4, potentially leading to code execution or file manipulation if a suitable gadget chain exists. The flaw resides in jsonOrUnserialize() and requires the stored payload to be non-JSON so that unserialize() runs without class restrictions; exploitation is high-complexity and no public exploit has been identified. Upgrading to 23.0.4 or later is the only complete fix.
RemediationAI
Upgrade to Dolibarr 23.0.4 or later, which applies the official fix (commit 17658fcaefdaabe13685e566e5f12d5fbd4f4a5c, PR #38530) that restricts unserialize() to scalar and array types. If immediate upgrade is not possible, restrict write access to extrafields, export configurations, and blocked log entries to only fully trusted administrators, since exploitation requires an authenticated account with those high write privileges; this may reduce flexibility for delegated admin roles. Additionally, audit those fields for existing serialized strings (patterns like O: or a: containing O:) and remove any unexpected entries, and consider a temporary WAF or application-level filter that rejects non-JSON serialized values in those fields, but be aware of potential false positives for legitimate legacy data. No official workaround that disables the backward-compatibility fallback without upgrading has been published.
Affected VersionsENISA
Affected Packages
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 vulnerability is a CWE-502 deserialization issue in Dolibarr's functions.lib.php. The jsonOrUnserialize() helper attempts json_decode() first and, on failure, falls back to unserialize() for backward compatibility. Before version 23.0.4, that fallback call omitted the allowed_classes option, so attacker-influenced strings that are not valid JSON are deserialized as full PHP objects. PHP object injection occurs when properties of those objects are controlled, allowing magic methods (__wakeup, __destruct, etc.) to invoke existing gadget chains in the loaded application or framework code, which can result in arbitrary code execution or file operations. The attack surface is limited to data sinks that store serialized strings: stored extrafields, export configurations, and blocked log entries, all of which are writable only by authenticated users with specific permissions. The CPE cpe:2.3:a:dolibarr:dolibarr:*:*:*:*:*:*:*:* identifies all pre-23.0.4 releases as affected. The fix, commit 17658fca, adds ['allowed_classes' => false] to the unserialize() call, disabling object instantiation while preserving backward compatibility for scalar and array data.
Know when Dolibarr 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
CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-facing web app (AV:N) but requires privileged field-write access (PR:H), a non-JSON payload and a working gadget chain (AC:H); unserialize RCE yields full C/I/A with no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Dolibarr before 23.0.4 contains a PHP object injection vulnerability in jsonOrUnserialize() in functions.lib.php, which calls unserialize() without class restrictions when json_decode() fails. Attackers able to write stored extrafields, export configurations or blocked log entries can plant serialized objects that trigger gadget chains for code execution or file manipulation.
Executive ViewAI
Dolibarr ERP/CRM versions before 23.0.4 are affected by a high-severity vulnerability that could allow users with certain write privileges to execute arbitrary code, potentially compromising sensitive business data and system integrity. No public exploit identified at time of analysis. Vendor-released patch: 23.0.4. Leadership should prioritize patching to protect critical business operations.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
An issue in Dolibarr ERP CRM v.17.0.1 and before allows a remote privileged attacker to execute arbitrary code via a cra
Dolibarr before 17.0.1 allows remote code execution by an authenticated user via an uppercase manipulation: <?PHP instea
Dolibarr ERP/CRM 4.0.4 has SQL Injection in doli/theme/eldy/style.css.php via the lang parameter. Rated critical severit
Cross Site Scripting vulnerability in Dolibarr ERP CRM v.17.0.1 and before allows a remote attacker to obtain sensitive
Dolibarr ERP/CRM 4.0.4 stores passwords with the MD5 algorithm, which makes brute-force attacks easier. Rated critical s
SQL injection attacks can result in unauthorized access to sensitive data, such as passwords, credit card details, or pe
Dolibarr Open Source ERP & CRM for Business before v14.0.1 allows attackers to escalate privileges via a crafted API. Ra
Dolibarr ERP & CRM <=15.0.3 is vulnerable to Eval injection. Rated critical severity (CVSS 9.8), this vulnerability is r
The website builder module in Dolibarr 13.0.2 allows remote PHP code execution because of an incomplete protection mecha
The htdocs/index.php?mainmenu=home login page in Dolibarr 10.0.6 allows an unlimited rate of failed authentication attem
SQL injection vulnerability in Dolibarr before 7.0.2 allows remote attackers to execute arbitrary SQL commands via vecto
Dolibarr ERP CRM 7.0.3 contains a remote code evaluation vulnerability that allows unauthenticated attackers to execute
EUVD-2026-102349
GHSA-52qw-6h47-qw3w
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB