
تحليل مفصل وإثبات مفهوم لـ CVE-2025-67887/86 RCE في وحدة 1C-Bitrix Translate، بما في ذلك سلسلة الاستغلال وتقييم CVSS وتوصيات التخفيف للمسؤولين.
أمن 1C-Bitrix يُعلم مركز أمن المعلومات ومراقبة الحوادث في شركة «1C-Bitrix»
ظهرت معلومات في قنوات Telegram عن وجود ثغرة في وحدة "الترجمة" يُزعم أنها تسمح بتحميل الأرشيفات بشكل غير مصرح به دون فحص أمني.
لقد أجرينا فحوصات سريعة ولا نؤكد وجود ثغرة في المنتج. تحميل الملفات إلى وحدة "الترجمات" متاح فقط للمسؤولين. الصلاحيات المذكورة في الرسالة تطابق صلاحيات المسؤول. والمسؤول مخوّل بتعديل وتشغيل أي كود في المشروع.
وبالتالي، لا توجد ثغرة.
https://t.me/bitrixkiberbez/76
في الإصلاح تم تنفيذ أداة تعقيم تكراري للدلائل، تكتشف وتحذف أي أشكال مختلفة من ملفات .htaccess بعد فك ضغط الأرشيف.
/**
* Removes any variation of .htaccess files from the extracted directory.
* Covers case sensitivity (.HTACCESS) and trailing dots/spaces.
* By CyberOK | https://www.cyberok.ru/
*/
private function sanitizeDirectory(Translate\IO\Directory $dir): void
{
foreach ($dir->getChildren() as $entry) {
if ($entry instanceof Main\IO\Directory) {
$this->sanitizeDirectory(new Translate\IO\Directory($entry->getPhysicalPath()));
} else {
if (preg_match('/^\.htaccess[.\s]*$/i', $entry->getName())) {
$entry->delete();
}
}
}
}
bitrix/modules/translate/lib/controller/asset/extract.php
🧯 RCE في 1C-Bitrix، لكن هناك نُقطة دقيقة
في 15 ديسمبر 2025 صدر إفصاح عام عن الثغرات CVE-2025-67886/CVE-2025-67887 في 1C-Bitrix. لم يتم إصدار التصحيح حتى الآن، وPoC متاح.
🔥 وصف الثغرات تقع الثغرات في وحدة Translate Module في 1C-Bitrix، التي تسمح بتحميل الأرشيفات وفك ضغطها في دليل مؤقت. ومع ذلك، لا يفحص النظام محتويات الأرشيفات قبل الاستخراج — وهذا يسمح للمهاجم بتضمين ملف PHP وملف .htaccess مُعدّ خصيصًا في الأرشيف، والتسبب في فك ضغطه وتنفيذه على الخادم.
📌 مهم! لماذا ليست هذه RCE للجميع
• لاستغلال ناجح، يحتاج المهاجم إلى امتلاك صلاحيات "SOURCE" و"WRITE" لوحدة Translate Module. في الواقع، هذه الصلاحيات تعني بالفعل إمكانية تعديل ملفات php.
• البنى التحتية التي تعمل على Nginx خالص (بدون Apache / بدون معالج .htaccess) ليست عرضة لـ RCE كاملة — ملفات PHP، كقاعدة عامة، تُقدَّم كملفات ثابتة. في هذه الحالة، ينتقل الخطر نحو arbitrary file write في المنطقة المتاحة عبر الويب، وليس RCE مضمونة.
• على تركيبة nginx → Apache أو Apache خالص مع تفعيل AllowOverride، يكون السيناريو أقرب إلى RCE «حقيقية»، لكن بصلاحيات المسؤول.
🔥الزملاء من 1C-Bitrix يؤكدون استنتاجاتنا في بيانهم الرسمي: https://t.me/bitrixkiberbez/76 📊 النطاق وفقًا لبيانات SKIPA، يوجد في Runet حوالي 2,000,000 نسخة من 1C-Bitrix. من المحتمل أن نحو ~10% من المضيفات قد تكون عرضة لهذه المشكلة. تم إشعار عملاء PentOps في الوقت المناسب.
📐 تقييم المخاطر ✖️ لم يتم تعيين CVSS رسمي بعد ✖️رسميًا، CVSS مرتفع، لكن عمليًا — منخفض بسبب الصلاحيات المطلوبة.
✖️ إعادة احتساب CyberOK (CVSS v3.1 الأساسي): 7.2 (مرتفع) CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
✖️ المقياس الزمني (لهذا اليوم): 6.8 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H/E:P/RL:U/RC:C
✖️ تقييم CyberOK RWD (Real World Danger): 3/5 — خطر استغلال حقيقي
📦 الإصدارات المعرضة للخطر • CVE-2025-67887: جميع إصدارات 1C-Bitrix <= 25.100.500 • CVE-2025-67886: جميع إصدارات Bitrix24 <= 25.100.300
🔧 إثبات المفهوم تم تأكيد وجود PoC متاح للعامة.
📌 ما الذي تبحث عنه في السجلات سلسلة تحميل التعريب المتسلسلة (المؤشر الرئيسي):
/bitrix/services/main/ajax.php?action=bitrix%3Atranslate.controller.asset.grabber.upload
/bitrix/services/main/ajax.php?action=bitrix%3Atranslate.controller.asset.grabber.extract
/bitrix/services/main/ajax.php?action=bitrix%3Atranslate.controller.asset.grabber.apply
⚠️ نقطة النهاية apply هي الأكثر خطورة، لأنها هي التي تعيد مسار الدليل المؤقت حيث قد يوجد الـ shell المحمل.
🛡 توصيات الحماية والفحص
صلاحيات الوصول: تحقق عاجلاً من الجهات التي لديها حق الوصول إلى الوحدة — قم بإزالة SOURCE/WRITE من الجميع باستثناء دائرة ضيقة من المسؤولين (أو الأفضل إغلاق الوحدة مؤقتًا).
تقييد الشبكة: أغلق الوصول إلى وحدات تحكم translate (على الأقل إلى معالجات فك الضغط) عبر WAF/ACL، مع إبقاء عناوين IP/VPN الخاصة بالإدارة فقط.
خادم الويب: Apache: امنع استخدام .htaccess في الدلائل القابلة للكتابة (AllowOverride None) و/أو امنع الـ handlers/تنفيذ PHP في الأماكن التي قد يصل إليها فك الضغط.
Nginx: تأكد من أن PHP يُنفَّذ فقط في المواقع (locations) المتوقعة (وبالتأكيد ليس من upload/tmp/الذاكرة المؤقتة/الدلائل المؤقتة).
في وضع الطوارئ، يمكن أيضًا مراقبة وحذف ملفات .htaccess التي تظهر في الدلائل القابلة للكتابة، لكن هذا حل ترقيعي — الأصح قطع الصلاحيات على مستوى الإعدادات.
💣 الاستنتاجات نعم، هذه ثغرة RCE، لكن كل شيء يعتمد على الصلاحيات وإعدادات خادم الويب. للاستغلال الناجح، تحتاج إلى صلاحيات تمنحك فعليًا حق الوصول إلى أداة سطر أوامر PHP، وهي أداة تسمح بتنفيذ كود PHP دون حيل أو رفع ملفات. تحقق من صلاحيات وحدة «Translate» وامنع التنفيذ في المناطق القابلة للكتابة — فهذا يغلق جزءًا كبيرًا من الخطر الحقيقي.
🖇 المصادر Advisory KIS-2025-08 / CVE-2025-67887 NGINX Community Blog