# التحقق من CVE-2026-48908 في Joomla SP Page Builder يتحقق من ثغرة CVE-2026-48908 في Joomla SP Page Builder من خلال رفع أيقونات غير مصرح به مما يؤدي إلى تنفيذ كود PHP. يتضمن أدلة auditd/PCAP، وخط زمني للأحداث، وتوصيات كشف لمراكز العمليات الأمنية (SOC) لأغراض البحث الدفاعي.
التحقق المخبري لثغرة CVE-2026-48908 في مكون SP Page Builder لجوملا، مع التركيز على الأدلة التقنية، إعادة بناء الأحداث، وفرص الكشف الدفاعي.
يُوثّق هذا المستودع اختبارًا مُتحكمًا فيه حيث قبلت نقطة النهاية asset.uploadCustomIcon في SP Page Builder أرشيفات الرموز المرفوعة التي نتج عنها كتابة قطع PHP تحت دليل الوسائط لجوملا. أدى استدعاء ملف PHP المرفوع عبر HTTP إلى تنفيذ الأوامر كمستخدم عملية خادم الويب. تم التقاط نشاط HTTP والملفات والعمليات والمصادقة والشبكة الناتج باستخدام سجلات حاوية Apache، وauditd في لينكس، وtcpdump، وبيانات Docker عن بعد، واستقصاء تغييرات الملفات، ولقطات شاشة من مضيف Windows.
[!IMPORTANT] يحتوي هذا المستودع على تقارير ولقطات شاشة فقط. لم يتم تضمين كود الاستغلال الهجومي، أو مصدر الحمولة، أو ملفات PCAP الخام، أو حزم أدلة المضيف الخام عمدًا. المادة مخصصة للتحقق من الثغرات، وهندسة مراكز العمليات الأمنية، وتطوير الكشف، والتحضير للاستجابة للحوادث، والبحث المصرح به.
يحتوي كلا التقريرين على منهجية الاختبار الكاملة، ومقتطفات الأدلة، والجدول الزمني للأحداث، وأدلة تغيير الملفات، ومؤشرات الشبكة، وإرشادات التخفيف، وتوصيات المراجعة، وأمثلة منطق SIEM.
.
├── README.md
├── SHA256SUMS.txt
├── reports/
│ ├── CVE-2026-48908_SP_Page_Builder_detection_EN.pdf
│ └── CVE-2026-48908_SP_Page_Builder_detection_PL.pdf
└── screenshots/
├── 01_poc_upload_and_code_execution.png
├── 02_http_whoami_www_data.png
├── 03_tcp_callback_ncat.png
├── 04_reverse_shell_session.png
└── 05_root_access_and_su_failure_redacted.png
لم يتم تضمين مصدر الاستغلال، أو مصدر الحمولة، أو PCAP الخام، أو حزمة أدلة Docker الخام، أو ملفات مصدر DOCX.
| الدور | النظام |
|---|---|
| المضيف الضحية | Ubuntu 24.04.4 LTS، نواة 6.17.0-35-generic، Docker Engine 29.5.3 |
| التطبيق المستهدف | Joomla 5.4.7، PHP 8.3.32، خادم Apache HTTP، الصورة joomla:5-php8.3-apache |
| المكون | JoomShaper SP Page Builder |
| الحاوية | joomla5-builders |
| محطة المهاجم | Microsoft Windows 11 Home 10.0.26200 |
| خدمة جوملا | http://172.20.10.3:8080 |
| عنوان اختبار ويندوز | 172.20.10.2 |
| عنوان الحاوية | 172.21.0.3 |
| تاريخ الاختبار | 9 يوليو 2026 |
كانت جذر الويب لجوملا /var/www/html مدعومة بواسطة حجم Docker joomla5-builders_joomla_data. هذا مهم للكشف: لم يوفر docker diff رؤية مفصلة لتغييرات الملفات داخل الحجم، لذا كان على مراقبة الملفات الاعتماد على قوائم الملفات الواعية للحجم وإرشادات مراقبة المضيف.
تم إجراء الاختبار في بيئة مخبرية معزولة ومصرح بها. غطى التحقق التسلسل التالي:
asset.uploadCustomIcon في SP Page Builder أرشيفات الرموز المرفوعة في البيئة المخبرية./media/com_sppagebuilder/assets/iconfont/..htaccess غير معالجة PHP لامتداد .PHP./root وتبديل المستخدم باستخدام su -.تتعمد التقارير توثيق الأدلة ومنطق الكشف دون توزيع استغلال قابل لإعادة الاستخدام أو تنفيذ حمولة.
أكد الاختبار المخبري:
asset.uploadCustomIcon في SP Page Builder؛.htaccess تحت دليل الوسائط لجوملا؛www-data؛داخل الحاوية، كانت الهوية الفعلية:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
كانت محاولة تصعيد الامتيازات الفاشلة مرئية على النحو التالي:
cd root
bash: cd: root: Permission denied
su -
Password:
su: Authentication failure
اختبر PoC العام عدة متغيرات للامتداد وأكد أن مزيجًا يتضمن امتداد PHP مختلط الأحرف وملف .htaccess قد يؤدي إلى التنفيذ في الإعداد المخبري.

نفذ طلب HTTP مسيطر عليه الأمر whoami، وعرض المتصفح مستخدم العملية الفعلي.

قبل الاختبار التفاعلي، تم استخدام اتصال رد اتصال أكثر أمانًا لمرة واحدة لتأكيد الاتصال الخارجي من البيئة المستهدفة إلى مضيف ويندوز على منفذ TCP 4444.

أكدت الجلسة التفاعلية التنفيذ كمستخدم www-data، ونظام لينكس كنظام تشغيل، ودليل عمل تحت مسار وسائط SP Page Builder لجوملا.

فشلت محاولات الوصول إلى /root والمصادقة باستخدام su -. تم تحرير لقطة الشاشة لتجنب نشر كلمة مرور الاختبار.

الجدول الزمني الكامل متاح في كلا تقريري PDF. كانت أهم الأحداث:
| UTC | الحدث |
|---|---|
| 19:33:56 | بدء مراجعة لينكس، tcpdump، أحداث Docker، واستقصاء تغييرات الملفات |
| 19:34:23 | سلسلة من طلبات POST إلى /index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon |
| 19:34:23.291 | GET إلى ملف .PHP مرفوع مع أمر حسابي مسيطر عليه |
| 19:34:23.329 | GET إلى ملف .pHp مرفوع مع أمر حسابي مسيطر عليه |
| 19:34:23.361 | GET إلى ملف .Php مرفوع مع أمر حسابي مسيطر عليه |
| 19:34:23.398 | GET إلى القطعة النهائية .PHP مع أمر حسابي مسيطر عليه |
| 19:34:23.411 | نفذ PoC العام الأمر id عبر قطعة PHP المرفوعة وتلقى HTTP 200 |
| 19:35:05 | طلب whoami يدوي أعاد www-data |
| 19:35:27 | نجح اتصال TCP لمرة واحدة إلى 172.20.10.2:4444 |
| 19:35:59 | بدأ طلب HTTP اتصال TCP عكسي إلى 172.20.10.2:4444 |
| 19:36:22-19:36:31 | أكدت whoami وuname وid وpwd سياق التنفيذ |
| 19:37:13 | أعاد cd root رسالة Permission denied |
| 19:37:21-19:37:28 | فشلت محاولة su - مع Authentication failure |
| 19:39:25 | توقف جمع المراجعة وتم حزم القطع الأثرية |
جمع المضيف الضحية:
auditd لـ execve;tcpdump;حدد الاختبار أيضًا قيدًا للمراقبة: نظرًا لأن /var/www/html كان مدعومًا بحجم Docker، لم يُظهر docker diff إنشاء ملفات مفصلة تحت /var/www/html/media/com_sppagebuilder/assets/iconfont/. لذلك يجب أن تغطي مراقبة تكامل الملفات المسار الحقيقي للمضيف الذي يدعم الحجم.
كانت أدلة مضيف ويندوز محدودة عمدًا بلقطات شاشة ذات صلة بالتقرير: