
CVE-2026-48908 — Exploit PoC per RCE non autenticata in SP Page Builder (Joomla) tramite caricamento arbitrario di file. Multi‑thread, case‑bypass, verifica della shell. Solo per test di sicurezza autorizzati.
Critico (CVSS v4: 10.0) — Proof-of-concept per l'esecuzione remota di codice non autenticata in SP Page Builder (
com_sppagebuilder) per Joomla.
| Attributo | Valore |
|---|---|
| ID CVE | CVE-2026-48908 |
| Gravità | Critica |
| Punteggio CVSS v4 | 10.0 |
| Debolezza | CWE-284 (Controllo degli accessi improprio) → Upload di file non autenticato |
| Componente | SP Page Builder (com_sppagebuilder) per Joomla |
| Versioni interessate | 1.0.0 – 6.6.1 |
| Versione corretta | 6.6.2 |
| Privilegi richiesti | Nessuno (pre‑autenticazione) |
| Interazione utente | Nessuna |
| Vettore di attacco | Rete |
| Impatto | Compromissione totale del sistema (RCE) |
SP Page Builder espone il task del controller asset.uploadCustomIcon per gestire il caricamento di un pacchetto di icon‑font personalizzato:
index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
Nelle versioni vulnerabili, questo task è raggiungibile senza autenticazione e senza un token CSRF valido. Accetta un archivio ZIP (campo multipart custom_icon) e ne estrae il contenuto in una directory pubblicamente accessibile sotto la web root:
/media/com_sppagebuilder/assets/iconfont/<name>/
Poiché l'endpoint è accessibile in fase di pre‑autenticazione e i file estratti finiscono in una posizione navigabile, un attaccante può caricare file arbitrari ed eseguire codice PHP richiedendoli tramite HTTP.
Questo exploit aggira i comuni filtri lato server sui nomi dei file utilizzando:
.php, .phtml, .phar, ecc. in minuscolo, ma non normalizza il case, quindi .PHP e altre varianti con maiuscole/minuscole miste vengono accettate.selection.json, uno style.css e un fonts/<name>.ttf validi, così l'upload viene accettato.fonts/shxt.{ext} all'interno dell'archivio estratto..php e .PHPresult.txtrequestsgit clone https://github.com/Jenderal92/CVE-2026-48908
cd CVE-2026-48908
pip install requests
Utilizzo base
python2 CVE-2026-48908.py list.txt
Con numero di thread personalizzato
python2 CVE-2026-48908.py list.txt 20
Formato del file di input
list.txt deve contenere un URL di destinazione per riga:
https://example.com
http://target-site.com/joomla
https://192.168.1.100/joomla
Output
· Gli URL delle shell riuscite vengono aggiunti a result.txt · Ogni riga contiene l'URL completo della shell PHP caricata
⚙️ Come funziona
Payload della shell
La shell incorporata fornisce:
· Informazioni sull'ambiente del server (php_uname()) · Interfaccia di upload per caricare file aggiuntivi · Feedback di successo / errore
🛡️ Mitigazione
· Aggiornare SP Page Builder alla versione 6.6.2 o successiva. · Controllare le directory di upload per file non autorizzati: · /media/com_sppagebuilder/assets/iconfont/ · Rimuovere eventuali file PHP inattesi trovati in quelle directory. · Esaminare i log del server per richieste POST sospette verso asset.uploadCustomIcon. · Implementare un Web Application Firewall (WAF) per bloccare tali richieste.
⚠️ Disclaimer
Questo strumento è destinato esclusivamente a scopi educativi e di test di sicurezza autorizzati.
L'accesso non autorizzato a sistemi informatici è illegale. Gli autori non si assumono alcuna responsabilità per usi impropri o danni causati da questo strumento. Utilizzarlo solo su sistemi di tua proprietà o per i quali hai ricevuto esplicito permesso scritto di test.
Per maggiori dettagli, puoi consultare il disclaimer nella copertina di Jenderal92. Puoi controllarlo QUI !!!
📚 Riferimenti
· Avviso Censys · Voce NVD · Annuncio di sicurezza JoomShaper
📄 Licenza
Questo progetto è solo a scopo educativo e di ricerca. Utilizzalo a tuo rischio.