Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Dolibarr account with import permission
-
DeliveryCraft HTTP POST with UNION SELECT payload in updatekeys array
-
ExploitSubmit request to htdocs/imports/import.php
-
ExecutionServer executes injected SQL in unsanitized WHERE clause
-
PersistUNION SELECT leaks arbitrary table content
-
ImpactAttacker-controlled integer hijacks subsequent UPDATE target row
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence 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 session with the import permission explicitly granted to the user account; unauthenticated network access alone is insufficient to reach the vulnerable code path. The attack targets the CSV and XLSX import wizard at htdocs/imports/import.php, which must be network-reachable. No non-default Dolibarr configuration is required - the vulnerability is present in the standard import workflow on all pre-24.0.0 installations. The primary limiting factor is the import permission: deployments that restrict this permission to a small tier of trusted administrators face substantially lower real-world risk than those that grant it to broader user populations. Exploitation is not possible on Dolibarr 24.0.0 or later. |
| Impact | The CVSS 4.0 score of 8.6 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N) accurately captures the core threat profile: the import wizard is network-accessible, the injection requires no unusual complexity, and the combined confidentiality and integrity impact is high. The most consequential limiting factor is PR:L - exploitation requires a Dolibarr account with the import permission, which rules out unauthenticated mass scanning and restricts the realistic attacker pool to insiders, compromised credentials, or credential-stuffing attacks targeting Dolibarr logins. No EPSS score was supplied and the vulnerability is absent from the CISA KEV catalog, so real-world exploitation rates cannot be quantified. The dual-impact nature of the flaw - UNION SELECT exfiltration chained with UPDATE redirection - elevates practical severity beyond a typical read-only SQL injection; the direct injection of the filter array into UPDATE statements for category link tables introduces an additional integrity risk not captured by examining confidentiality alone. Organizations that grant the import permission broadly to non-administrative users face substantially greater exposure than those that restrict it tightly, and the absence of a 23.x backport means any pre-24.0.0 deployment remains vulnerable until a full version upgrade is completed. |
| Exploit ScenarioDerived | An attacker who controls or has compromised a Dolibarr account with the import permission initiates a CSV import and submits a crafted updatekeys POST array where one entry is a UNION SELECT payload rather than a legitimate column code. The server processes the payload without allowlist validation, executes the injected SQL against the database, and returns an attacker-chosen integer as the resolved row identifier - redirecting the subsequent UPDATE to an arbitrary row while the UNION SELECT result leaks content from any table the database user can access. No public exploit code has been identified, but the attack requires only a crafted HTTP POST request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 27, 2026
SQL injection in Dolibarr's CSV and XLSX import wizard (all versions before 24.0.0, including the most recent 23.0.4 stable release) allows an authenticated user holding the import permission to inject arbitrary SQL through the unsanitized updatekeys POST parameter. A crafted UNION SELECT payload simultaneously exfiltrates content from any database table the application account can read and hijacks the WHERE clause of the subsequent UPDATE to redirect which row is overwritten; for category link tables the raw filter array is spliced directly into UPDATE statements. No public exploit has been identified at time of analysis, and this CVE does not appear in the CISA KEV catalog.
RemediationAI
Upgrade Dolibarr to version 24.0.0 or later - this is the only confirmed fixed release. The upstream remediation commit is available at https://github.com/Dolibarr/dolibarr/commit/24b1b99c89c79a3fe2d1e83b22dc1810cf0fa6e1 and introduces allowlist validation of updatekeys values via array_key_exists(), field-name character sanitization with preg_replace('/[^a-zA-Z0-9\._]/', '', $keyfordata), and use of $this->db->sanitize() on field references. No backport for 23.x has been provided, so organizations pinned to that series must upgrade to 24.0.0. If immediate upgrade is not feasible, restrict the Dolibarr import permission to the smallest possible set of trusted administrative accounts - this is the single most effective compensating control, since the vulnerability is not reachable without that permission. As a secondary measure, blocking or disabling access to the import wizard (htdocs/imports/import.php) at the web server or WAF level eliminates the attack surface entirely at the cost of losing legitimate import functionality. The VulnCheck advisory at https://www.vulncheck.com/advisories/dolibarr-before-24.0.0-sql-injection-via-the-csv-and-xlsx-import-update-keys provides supplementary context.
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
Dolibarr is a PHP-based open-source ERP/CRM system identified by CPE cpe:2.3:a:dolibarr:dolibarr:*:*:*:*:*:*:*:*. The root cause is CWE-89 (SQL Injection) arising from a missing server-side allowlist check in the import wizard. GETPOST('updatekeys', 'array') in htdocs/imports/import.php applies only the alphanohtml filter, which strips HTML tags but leaves SQL keywords, comment markers, parentheses, spaces, and quotes completely intact. The import_insert() function in htdocs/core/modules/import/import_csv.modules.php then strips table alias prefixes with preg_replace('/^.*\./i', '', $key) - which does nothing when the key contains no dot - and directly concatenates the result into a WHERE clause as $where[] = $key.' = '.$data[$key], executing it via $this->db->query(). Although the import UI presents a fixed list of legitimate column codes, the server never validates submitted updatekeys values against that allowlist. The fix introduced in commit 24b1b99c (version 24.0.0) adds array_key_exists() allowlist enforcement against the import profile's defined field set, sanitizes field names with preg_replace('/[^a-zA-Z0-9\._]/', '', $keyfordata), and wraps field references with the database layer's own sanitize() method.
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:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-accessible web wizard requires low privilege (import permission only); scope is unchanged as impact is confined to the application's own database; no availability impact from read and targeted-write exploitation.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Dolibarr before 24.0.0 contains a SQL injection in its CSV and XLSX import wizard. The wizard reads its update keys with GETPOST('updatekeys', 'array') in htdocs/imports/import.php, which applies only the generic alphanohtml filter: that strips HTML but leaves SQL keywords, comment markers, parentheses, spaces and quotes intact. import_insert() in htdocs/core/modules/import/import_csv.modules.php then iterates the submitted values and builds a filter with $where[] = $key.' = '.$data[$key], having first applied preg_replace('/^.*\./i', '', $key), an alias strip that does nothing to a value containing no dot. The assembled string is executed through $this->db->query(). The injected SELECT resolves the row id that the import then assigns to $lastinsertid, which becomes the WHERE target of a subsequent UPDATE, so a UNION SELECT returning an attacker-chosen integer both exfiltrates arbitrary table content and redirects which row the import overwrites; for category link tables the raw filter array is spliced into that UPDATE directly. The interface offers a fixed list of legitimate column codes but the server never checks the submitted values against it. A user holding the import permission can exploit this. Release 23.0.4 does not carry the fix; the allow-list test was added in 24.0.0.
Executive ViewAI
Dolibarr ERP/CRM systems running versions 23.0.4 and earlier are vulnerable to SQL injection through the import feature, allowing users with import permissions to access unauthorized database records and modify data; no public exploit has been identified to date. Organizations using Dolibarr for financial or customer data management face significant risk if multiple staff members hold import permissions, making immediate patching essential to prevent data breaches and unauthorized modifications.
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
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
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-67233
GHSA-j8xc-7c27-7wj4
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB