
استغلال إثبات المفهوم لـ CVE-2025-56015، وهو هروب من الصندوق الرملي وتنفيذ التعليمات البرمجية عن بُعد في GenieACS. يقوم بأتمتة إنشاء توفير ضار، ورسم خرائط الإعدادات المسبقة، وتوصيل الصدفة العكسية عبر محاكاة CWMP.
إثبات المفهوم (PoC) لاستغلال الثغرة CVE-2025-56015، وهي ثغرة حرجة في الهروب من الصندوق الرمل (Sandbox Escape) وحقن الأكواد في GenieACS، مما يسمح بتنفيذ أكواد جافا سكريبت عشوائية في سياق التزويد (Provisioning). من خلال استغلال سلسلة declare.constructor.constructor، يمكن للمهاجم الهروب من بيئة جافا سكريبت المقيدة، والوصول إلى الوحدات الأساسية child_process و net في Node.js، وتحقيق تنفيذ الأوامر عن بُعد (RCE) كامل.
نوع الاستغلال: عن بُعد
المصادقة: يتطلب الوصول الشبكي إلى NBI GenieACS (المنفذ 7557) وACS (المنفذ 7547)
التأثير: اختراق كامل للخادم، تنفيذ شل عكسي، التنقل عبر الشبكة
تسمح نقطة نهاية NBI على المنفذ 7557 بالوصول غير الموثّق لاسترجاع بيانات حساسة. أمثلة على نقاط نهاية API:
الحصول على بيانات المستخدمين:
$ curl 'http://myhost:7557/users/'
تتضمن الرد معلومات حساسة مثل تجزئات كلمات المرور والأملاح (salts).
الحصول على قائمة الملفات:
$ curl 'http://myhost:7557/files/'
الحصول على تفاصيل التزويد:
$ curl 'http://myhost:7557/provisions/'
بالإضافة إلى ذلك، يمكن تنزيل الملفات مباشرة من خادم الملفات (المنفذ 7567) دون مصادقة:
wget 'http://myhost:7567/SCR-20250623-qjoi.png'
نقطة نهاية اختبار تصحيح الأخطاء داخل صندوق الرمل تقيد الوصول المباشر إلى كائن process في Node.js. ومع ذلك، يمكن تجاوز هذا التقييد عبر التنقل بين الكائنات، وتحديدًا باستخدام سلسلة المنشئ (constructor.constructor).
من خلال استدعاء ذلك على كائنات متاحة (مثل declare)، يمكن للمهاجمين الهروب من سياق الصندوق الرمل والحصول على وصول إلى كائن process العام. يمنح هذا القدرة على قراءة متغيرات البيئة وتنفيذ أوامر عشوائية.
RCE بعد المصادقة:
يمكن تنفيذ نصوص التزويد (Provision scripts) مباشرة عبر نقطة نهاية API /api/devices/{device_id}/tasks للحصول على شل. الطلبات المرسلة عبر NBI فقط تُضاف إلى الطابور ولكن لا تُنفذ فورًا.
RCE قبل المصادقة (بدون مصادقة): باستخدام NBI API، يمكن للمهاجم إنشاء تزويدات (provisions) وإعدادات مسبقة (presets) دون مصادقة. تعمل الإعدادات المسبقة على تشغيل نصوص التزويد تلقائيًا عندما يرسل جهاز حدثًا عبر واجهة CWMP.
خطوات الاستغلال:
PUT /provisions/{provision_name}.PUT /presets/{preset_name} (ربطه بحدث مثل "Periodic").declare.constructor.constructorقبل تشغيل الأداة، قم بتحديث المتغيرات ACS_URL و NBI_URL و LHOST و LPORT داخل ملف exploit.py لتتناسب مع بيئتك وإعدادات جهاز المهاجم.
# بدء المستمع على جهاز المهاجم
nc -lvnp 4444
# تشغيل الأداة
python3 exploit.py

requests (pip install requests)تم توفير هذا الكود لأغراض تعليمية واختبارات أمنية مصرح بها فقط.
الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها غير قانوني وغير أخلاقي.
تم اكتشاف الثغرات وتطوير الأداة بواسطة:
من Datafarm Co., Ltd.
طور بواسطة DF Pentest Team • تايلاند