
Analisi tecnica e advisory per CVE-2026-48908: caricamento arbitrario di file non autenticato verso RCE in JoomShaper SP Page Builder.
Una completa analisi tecnica di una vulnerabilità di esecuzione remota di codice non autenticata.
CVE-2026-48908 è una vulnerabilità di sicurezza critica identificata nell'estensione JoomShaper SP Page Builder per Joomla. La vulnerabilità risiede in un endpoint non protetto che accetta caricamenti forniti dall'utente senza validare l'autorizzazione dell'utente o limitare efficacemente le estensioni dei file.
Un exploit riuscito consente ad attaccanti remoti non autenticati di scrivere file eseguibili in directory web pubbliche, culminando nel pieno compromesso del server (Remote Code Execution).
[!NOTE] Questa scoperta della vulnerabilità è il culmine di 6-7 mesi di ricerca dedicata sulla sicurezza, audit del codice sorgente e mappatura dei comportamenti di protocollo nelle estensioni CMS.
timeline
title Disclosure Lifecycle
2026 Q1 : Source Code Auditing & Identification
: Edge-case Analysis & Flow Tracing
2026 Q2 : Proof-of-Concept Validation
: Responsible Vendor Disclosure
2026 Q3 : Patch Verification
: Public Advisory & CVE Registration
Il diagramma seguente illustra il flusso operativo della vulnerabilità dall'avvio della richiesta all'esecuzione:
sequenceDiagram
autonumber
actor Attacker as Remote Attacker
participant Endpoint as Upload Controller
participant Storage as Public Storage
participant Server as Web Server Process
Attacker->>Endpoint: POST request with malicious payload (No Auth)
Note over Endpoint: Missing Authorization Check<br/>& Loose MIME Validation
Endpoint->>Storage: Writes file to public path (/images/...)
Endpoint-->>Attacker: Returns success response & file path
Attacker->>Storage: GET request to uploaded file
Storage->>Server: Executes server-side code
Server-->>Attacker: Command execution output returned
L'endpoint del controller che gestisce i caricamenti di file multipart manca di controlli espliciti sui privilegi (JFactory::getUser()->authorise()) e non richiede token di sessione Anti-CSRF validi. Di conseguenza, le richieste HTTP non autenticate raggiungono la logica centrale di scrittura dei file.
La logica di caricamento si basa su header forniti dal client o su controlli permissivi delle estensioni, piuttosto che su una rigorosa whitelist lato server. Ciò consente di salvare estensioni di script eseguibili in directory configurate per l'esecuzione web.
[!IMPORTANT] Gli amministratori che utilizzano versioni interessate dovrebbero aggiornare immediatamente alla versione patchata e applicare policy di esecuzione a livello di server.
# Block script execution in writable media directories
location ~* ^/images/.*\.php$ {
deny all;
return 403;
}
.htaccess# Disable PHP execution inside upload paths
<Directory "/var/www/html/images">
<FilesMatch "\.(php|phtml|php3|php4|php5|php7|phps)$">
Order Deny,Allow
Deny from all
</FilesMatch>
</Directory>
Disclaimer: Questo repository è pubblicato strettamente a scopo educativo, difensivo e di audit della sicurezza.
| Parametro | Dettagli |
|---|
| Tipo di Vulnerabilità | Caricamento Arbitrario di File non Autenticato (CWE-434) |
| Punteggio CVSS v3.1 | 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Livello di Impatto | Critico (Remote Code Execution / Compromissione Totale del Sistema) |
| Vettore di Accesso | Rete / Remoto (Nessuna Autenticazione Richiesta) |