Skip to main content

Dolibarr CVE-2026-81728

| EUVDEUVD-2026-67233 HIGH
SQL Injection (CWE-89)
2026-08-27 VulnCheck GHSA-j8xc-7c27-7wj4
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain Dolibarr account with import permission
  2. Delivery
    Craft HTTP POST with UNION SELECT payload in updatekeys array
  3. Exploit
    Submit request to htdocs/imports/import.php
  4. Execution
    Server executes injected SQL in unsanitized WHERE clause
  5. Persist
    UNION SELECT leaks arbitrary table content
  6. Impact
    Attacker-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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

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

dolibarr 0 <24.0.0

Affected Packages

euvd dolibarr fix: 24.0.0

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

Vendor (VulnCheck) PRIMARY 8.6 HIGH
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
vuln.today AI 8.1 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular open-source ERP/CRM, primarily SMB and non-profit deployments
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

CVE-2023-38886 HIGH POC
7.2 Sep 20

An issue in Dolibarr ERP CRM v.17.0.1 and before allows a remote privileged attacker to execute arbitrary code via a cra

CVE-2023-30253 HIGH POC
8.8 May 29

Dolibarr before 17.0.1 allows remote code execution by an authenticated user via an uppercase manipulation: <?PHP instea

CVE-2017-7886 CRITICAL POC
9.8 May 10

Dolibarr ERP/CRM 4.0.4 has SQL Injection in doli/theme/eldy/style.css.php via the lang parameter. Rated critical severit

CVE-2023-38888 CRITICAL POC
9.6 Sep 20

Cross Site Scripting vulnerability in Dolibarr ERP CRM v.17.0.1 and before allows a remote attacker to obtain sensitive

CVE-2017-7888 CRITICAL POC
9.8 May 10

Dolibarr ERP/CRM 4.0.4 stores passwords with the MD5 algorithm, which makes brute-force attacks easier. Rated critical s

CVE-2022-4093 CRITICAL POC
9.8 Nov 21

SQL injection attacks can result in unauthorized access to sensitive data, such as passwords, credit card details, or pe

CVE-2022-43138 CRITICAL POC
9.8 Nov 17

Dolibarr Open Source ERP & CRM for Business before v14.0.1 allows attackers to escalate privileges via a crafted API. Ra

CVE-2022-40871 CRITICAL POC
9.8 Oct 12

Dolibarr ERP & CRM <=15.0.3 is vulnerable to Eval injection. Rated critical severity (CVSS 9.8), this vulnerability is r

CVE-2021-33816 CRITICAL POC
9.8 Nov 10

The website builder module in Dolibarr 13.0.2 allows remote PHP code execution because of an incomplete protection mecha

CVE-2020-7995 CRITICAL POC
9.8 Jan 26

The htdocs/index.php?mainmenu=home login page in Dolibarr 10.0.6 allows an unlimited rate of failed authentication attem

CVE-2018-10094 CRITICAL POC
9.8 May 22

SQL injection vulnerability in Dolibarr before 7.0.2 allows remote attackers to execute arbitrary SQL commands via vecto

CVE-2018-25357 CRITICAL POC
9.3 May 23

Dolibarr ERP CRM 7.0.3 contains a remote code evaluation vulnerability that allows unauthenticated attackers to execute

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