Dolibarr selectobject.php Authenticated Local File Inclusion (CVE-2026-34036)
by cnf409 · 2026-07-05
- Severity
- Medium
- CVE
- CVE-2026-34036
- Category
- web
- Affected product
- Dolibarr ERP/CRM
- Affected versions
- Version reachable via core/ajax/selectobject.php (specific version range not stated in source)
- Disclosed
- 2026-07-05
- Patch status
- unpatched
References
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-03 |
| Author / Researcher | cnf409 |
| CVE / Advisory | CVE-2026-34036 |
| Category | web |
| Severity | Medium |
| CVSS Score | Not specified in source |
| Status | PoC |
| Tags | dolibarr, lfi, local-file-inclusion, authenticated, crm, ajax, php |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Dolibarr ERP/CRM |
| Versions Affected | Version reachable via core/ajax/selectobject.php (specific version range not stated in source) |
| Language / Platform | PHP web application; PoC written in Python 3 |
| Authentication Required | Yes (valid Dolibarr user credentials) |
| Network Access Required | Yes |
Summary
Dolibarr’s core/ajax/selectobject.php endpoint, used to power object-picker autocomplete widgets in the UI, accepts an objectdesc parameter that is used to build a path to a local file. An authenticated user can craft an objectdesc value (in the form A:<path>:0) that causes the endpoint to read and return the contents of an arbitrary local file on the server instead of the intended object description file. The included PoC logs into a target Dolibarr instance with valid credentials, issues the crafted request against selectobject.php, and prints the disclosed file contents after trimming PHP warning/error noise from the response.
Vulnerability Details
Root Cause
The objectdesc parameter passed to core/ajax/selectobject.php is used to construct a filesystem path without adequate validation, allowing an authenticated user to specify arbitrary paths relative to the Dolibarr web root.
Attack Vector
- Authenticate to the target Dolibarr instance with any valid low-privilege account.
- Send a GET request to
core/ajax/selectobject.phpwithobjectdesc=A:<path>:0where<path>is the file to read (e.g.conf/.htaccess). - The endpoint reads and returns the contents of the specified file in the HTTP response.
- Strip PHP warning/fatal-error noise from the response to recover the clean file contents.
Impact
Disclosure of arbitrary local files readable by the web server process (e.g. configuration files, credentials, source code), which can lead to further compromise such as database credential theft.
Environment / Lab Setup
Target: Dolibarr instance with core/ajax/selectobject.php reachable, valid user account
Attacker: Python 3 + requests library
Proof of Concept
PoC Script
See
CVE-2026-34036.pyin this folder.
| |
The script logs into Dolibarr using the supplied credentials, requests core/ajax/selectobject.php with a crafted objectdesc parameter pointing at the target file, and prints the disclosed file contents to stdout.
Detection & Indicators of Compromise
Signs of compromise:
- Access log entries for
core/ajax/selectobject.phpwithobjectdescvalues referencing configuration files or paths outside the expected object-picker usage - Repeated authenticated requests to the same AJAX endpoint from a single session enumerating different file paths
Remediation
| Action | Detail |
|---|---|
| Primary fix | No vendor patch confirmed as of 2026-07-05 — monitor for advisory |
| Interim mitigation | Validate objectdesc against an allowlist of expected object types/paths and reject any value resolving outside the intended object-description directory |
References
Notes
Mirrored from https://github.com/cnf409/CVE-2026-34036 on 2026-07-05.
| |