Skip to main content

Dolibarr ERP CRM EUVDEUVD-2026-109810

| CVE-2026-116218 HIGH
SQL Injection (CWE-89)
2026-10-26 VulnCheck GHSA-m4jj-h65f-p4xj
7.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to REST API with societe/creer rights
  2. Delivery
    POST to third-party bankaccounts endpoint
  3. Exploit
    Inject payload in unescaped type field
  4. Execution
    Break out of INSERT VALUES clause
  5. Persist
    Run time-based blind subqueries
  6. Impact
    Exfiltrate password hashes and API keys

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

Requires an authenticated Dolibarr REST API account holding the societe/creer (third-party creation) permission; the attacker injects via the 'type' field when creating a bank account through the third-party bankaccounts REST endpoint, which reaches the unescaped concatenation in CompanyBankAccount::create(). Exploitation is limited to deployments running Dolibarr 19.0.0 up to (not including) 23.0.4 with the REST API enabled and reachable, and the attacker must already possess valid credentials with that specific permission - there is no unauthenticated or UI-less-anonymous path. Because the leak uses time-based blind subqueries, extraction of password hashes and API keys is slow but does not depend on any non-default configuration beyond having the API active.

Impact

This is a genuine but conditional priority, not a drive-by threat. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and the 7.2 base score agree with the description: exploitation is network-reachable and low-complexity, but requires an authenticated account - specifically a user holding the societe/creer (third-party create) permission. That PR:L requirement is the single biggest risk-limiter, so this is a privilege-escalation / data-exposure risk from semi-trusted insiders or compromised low-tier API credentials, not an anonymous internet attack. No EPSS score, KEV listing, or confirmed public exploit is present in the input, so there is no evidence of active exploitation - the only exploitation signal is the vuln.today 'this_week' priority label and the VulnCheck advisory. Confidence in the mechanism is high because the vendor commit directly confirms the root cause (unescaped $this->type concatenated into an INSERT in CompanyBankAccount::create()). The impact is primarily confidentiality (VC:H - reading password hashes and API keys via blind subqueries), with limited integrity/availability (VI:L/VA:L). Net: a real, patch-worthy issue warranting prompt remediation on the vendor's this_week timeline, but gated behind authentication rather than a critical unauthenticated emergency.

Exploit ScenarioDerived

An attacker who already holds a low-privilege Dolibarr account with societe/creer permission (or who has stolen such an API key) sends a crafted POST to the third-party bankaccounts REST endpoint, placing a time-based blind SQL payload in the 'type' field. Because the value is concatenated unescaped into the INSERT statement in CompanyBankAccount::create(), the attacker uses conditional time delays to exfiltrate stored password hashes and API keys from the database. No public exploit identified at time of analysis, though VulnCheck has published an advisory and the vulnerable code is visible in the public repository.

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 – Oct 26, 2026

SQL injection in Dolibarr ERP CRM 19.0.0 through 23.0.3 (fixed in 23.0.4) allows an authenticated REST API user holding only the low-privilege societe/creer (third-party creation) permission to break out of the unescaped 'type' value when creating a company bank account. The injected payload reaches an unescaped string concatenation in CompanyBankAccount::create() and can be used in time-based blind subqueries to read password hashes and API keys from the database. Exploitation requires the REST API to be enabled and reachable plus valid credentials with that specific permission, so this is a conditional, credentialed attack rather than a drive-by one; no public exploit code has been identified at time of analysis and the vulnerability is not in CISA KEV.

RemediationAI

Vendor-released patch: upgrade to Dolibarr ERP CRM 23.0.4 or later, which applies the escape() fix in CompanyBankAccount::create() via commit 19991c8ffa9b4fd7338b7ef2585fadb554b86735 (https://github.com/Dolibarr/dolibarr/commit/19991c8ffa9b4fd7338b7ef2585fadb554b86735); the affected source can be compared against the 23.0.3 files referenced in the advisory at https://github.com/Dolibarr/dolibarr/blob/23.0.3/htdocs/societe/class/companybankaccount.class.php#L399 and https://github.com/Dolibarr/dolibarr/blob/23.0.3/htdocs/societe/class/api_thirdparties.class.php#L1852. Updating is the only complete fix per the vendor, since the flaw is a missing sanitizer in application code rather than a configuration toggle; before the upgrade can be applied, exposure is bounded by the prerequisites the assessment identifies, namely the REST API being enabled and reachable and an API account holding societe/creer, so keeping the API disabled or unreachable from untrusted networks and reviewing which API accounts actually carry third-party creation rights reduce the attack surface, at the cost of breaking legitimate API integrations and third-party provisioning workflows. Because the endpoint is reachable by any user with societe/creer, credentials for such accounts should be treated as potentially compromised in any instance that ran an unpatched version with API access, and Dolibarr password hashes and stored API keys should be rotated after patching.

Affected VersionsENISA

dolibarr 19.0.0 <23.0.4

Affected Packages

euvd dolibarr fix: 23.0.4

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 ERP/CRM application that persists data through a thin database abstraction layer, where values destined for SQL literals must be passed through $db->escape() (or a comparable sanitizer) before concatenation. In htdocs/societe/class/companybankaccount.class.php, the create() method built an INSERT statement as "VALUES (".((int) $this->socid).", '".$this->type."', '".$this->db->idate($this->datec)."', ...", leaving the type property interpolated raw; this is CWE-89 (improper neutralization of special elements used in an SQL command). The REST surface at htdocs/societe/class/api_thirdparties.class.php (around line 1852) exposes the third-party bankaccounts endpoint, which maps the request's type field into that property and invokes create(), so a request body value can terminate the string literal and inject arbitrary SQL. The upstream commit 19991c8ffa9b4fd7338b7ef2585fadb554b86735 wraps the value with $this->db->escape($this->type) and, in the same commit, extends the project's own CodingPhpTest.php lint rule to flag VALUES concatenations of quoted variables that are not passed through escape()/idate()/encrypt(). Because the injection point is inside an INSERT statement and the documented extraction path is time-based blind subquery inference, data exfiltration (password hashes, API keys) is technically feasible but slow; the trigger is explicitly the type field submitted through the bankaccounts REST endpoint, not a UI form.

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 7.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.6 HIGH

Network REST endpoint and low-complexity injection, but a societe/creer account is required so PR:L; high confidentiality from reading hashes/keys, limited integrity/availability within the same app scope.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:L/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
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Dolibarr ERP CRM 19.0.0 before 23.0.4 contains an SQL injection vulnerability that allows authenticated API users to inject SQL via the type field of the third-party bankaccounts REST endpoint. Attackers with only societe/creer permission can break out of the unescaped type value in CompanyBankAccount::create() to read password hashes and API keys via time-based blind subqueries.

Executive ViewAI

Why It Matters

A high-severity SQL injection vulnerability in Dolibarr ERP CRM versions 19.0.0 through 23.0.3 could allow an authenticated user with low privileges to access sensitive data such as password hashes and API keys from the database. This puts organizations using affected Dolibarr instances at risk of data breach, but exploitation requires valid credentials and a specific permission, as well as the REST API being enabled and reachable. Leadership should prioritize patching to version 23.0.4 and review API exposure.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
Popular open-source ERP/CRM, broadly used by SMBs but not internet-ubiquitous
Data Quality
3 sources
Confidence: Low

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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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