Defensive Lab-Validierung und SOC-Erkennungsanleitung für CVE-2026-48907 in Joomla JCE <= 2.9.99.4, einschließlich Apache/Joomla/auditd-Telemetrie, Webshell-Artefakten, Sigma-Regeln, MITRE ATT&CK-Zuordnung und Empfehlungen zur Risikominderung.
Defensiver Validierungsbericht und SOC-orientierte Erkennungshinweise für CVE-2026-48907, das den Joomla Content Editor (JCE) bis Version 2.9.99.4 betrifft.
Dieses Repository dokumentiert eine kontrollierte Laborvalidierung von CVE-2026-48907 in Joomla JCE und konzentriert sich auf praktische Erkennungsentwicklung für SOC-Teams.
Das Ziel ist nicht, eine Anleitung zur Ausnutzung zu geben. Ziel ist es zu zeigen, welche Telemetriequellen bei der Validierung nützlich waren, welche Artefakte erstellt wurden und wie Verteidiger diese Aktivität erkennen und darauf reagieren können.
| Bereich | Ergebnis |
|---|---|
| Sicherheitslücke | CVE-2026-48907 im Joomla Content Editor (JCE); nicht authentifizierter Profilerstellungs-/Import-Workflow, der zu PHP-Upload und Codeausführung führen kann. |
| Getestete Version | JCE 2.9.99.4. Das Joomla-Administratorpanel zeigte ein verfügbares Update auf 2.9.99.7. |
| Laborergebnis | Die öffentliche PoC-Validierung bestätigte RCE und erstellte eine PHP-Webshell im Joomla /tmp als jce*.xml.php. Befehle wurden als www-data ausgeführt. |
| Wertvollste Telemetrie | Apache access.log, Apache/PHP error.log, auditd execve-Telemetrie und Dateisystemartefakte in joomla_html/tmp. |
| Joomla-Protokolle | Nützlich als unterstützender Kontext, aber allein nicht ausreichend. Joomla-Anwendungsprotokolle rekonstruierten die vollständige Kette nicht: Exploit → Webshell → Befehlsausführung. |
| SOC-Priorität | Kritisch für internetfähige Joomla-Instanzen oder Joomla-Instanzen, die von weniger vertrauenswürdigen internen Netzwerken aus erreichbar sind. |
| Parameter | Wert |
|---|---|
| Anwendungs-URL | http://172.20.10.3:9999 |
| Joomla-Container | joomla-jce-lab, Image joomla:5-apache |
| Datenbank-Container | joomla-jce-db, Image mariadb:11 |
| Port-Zuordnung | 0.0.0.0:9999 -> 80/tcp |
| Apache | Apache/2.4.67 (Debian) |
| PHP | PHP 8.3.31 |
| MariaDB | 11.8.8-MariaDB |
| Joomla | Joomla 5.4.6 Stable |
| JCE | 2.9.99.4 |
| Testquelle | Windows 11, IP 172.20.10.2 |
| Protokollierung | Apache-Zugriffs-/Fehlerprotokolle, Joomla-Protokolle, auditd, Docker-Protokolle, Dateisystemartefakte |







Ein wichtiger betrieblicher Befund ist, dass Joomla-Anwendungsprotokolle nicht ausreichten.
Während des Labortests zeichneten Joomla-Protokolle anwendungsspezifischen Kontext auf, wie z. B. ein joomlafailure-Ereignis, aber sie zeigten nicht die vollständige Ausnutzungskette. Die nützliche Kette war hauptsächlich sichtbar in:
access.logerror.logexecve-Aufzeichnungenjoomla_html/tmpFür das SOC-Monitoring sollten Joomla-Protokolle als unterstützende Telemetrie behandelt werden, nicht als primäre Erkennungsquelle für diese Sicherheitslücke.
Auf hoher Ebene beobachtete Kette während des kontrollierten Tests:
JCE version discovery
↓
POST to Joomla JCE component
↓
PHP webshell written to Joomla /tmp
↓
HTTP request to /tmp/jce*.xml.php
↓
Command execution through webshell
↓
auditd confirms /usr/bin/dash and commands executed as www-data
Die deutlichsten Beweise fanden sich in Apache access.log:
GET /plugins/editors/jce/jce.xml
GET /
POST /index.php?option=com_jce
GET /tmp/jceolxtshs3.xml.php
GET /plugins/editors/jce/jce.xml
POST /index.php?option=com_jce
GET /tmp/jce624jdcfx.xml.php
GET /tmp/jce624jdcfx.xml.php?c=id%20%26%26%20hostname%20%26%26%20pwd
GET /tmp/jce624jdcfx.xml.php?c=whoami
GET /tmp/jce624jdcfx.xml.php?c=hostname
GET /tmp/jce624jdcfx.xml.php?c=id
GET /tmp/jce624jdcfx.xml.php?c=pwd
Das Apache/PHP-Fehlerprotokoll enthielt wertvolle parserbezogene Spuren:
simplexml_load_string()
administrator/components/com_jce/helpers/profiles.php
RXST
RXEND
Die Markierungen RXST und RXEND waren besonders nützliche Indikatoren für diese spezifische PoC-Familie, da sie im Payload-Handling-Pfad auftauchten.
Joomla-Protokolle bestätigten, dass das Anwendungslogging aktiv war, aber sie rekonstruierten die Ausnutzung nicht:
#Software: Joomla! 5.4.6 Stable [ Kutegemea ] 26-May-2026 16:00 GMT
#Fields: datetime priority clientip category message
2026-06-18T20:37:57+00:00 INFO 172.20.10.2 joomlafailure Username and password do not match or you do not have an account yet.
Das bedeutet, dass die alleinige Erfassung von Joomla-Protokollen möglicherweise die wichtigsten Beweise für die Ausnutzung von CVE-2026-48907 übersieht.
Der Test erstellte PHP-Webshell-Dateien im Joomla tmp:
/var/www/html/tmp/jce624jdcfx.xml.php
/var/www/html/tmp/jceolxtshs3.xml.php
Hostseitige Pfade im Labor:
/home/user/joomla-jce-lab/joomla_html/tmp/jce624jdcfx.xml.php
/home/user/joomla-jce-lab/joomla_html/tmp/jceolxtshs3.xml.php
Beobachtete SHA256-Hashes:
b6fa303daef8aa8cb39566c73d2cb4a458efb2b1fba48052dd039d45c3beb0aa jce624jdcfx.xml.php
f8bcc802ab56b845c968ed6727228f200f8f4bcd332b8ce82c6980d93ac228fd jceolxtshs3.xml.php