Validation défensive en laboratoire et guide de détection SOC pour CVE-2026-48907 dans Joomla JCE <= 2.9.99.4, incluant la télémétrie Apache/Joomla/auditd, les artefacts de webshell, les règles Sigma, la cartographie MITRE ATT&CK et les recommandations d'atténuation.
Rapport de validation défensive et notes de détection orientées SOC pour CVE-2026-48907 affectant Joomla Content Editor (JCE) versions jusqu'à 2.9.99.4.
Ce dépôt documente une validation en laboratoire contrôlé de CVE-2026-48907 dans Joomla JCE et se concentre sur l'ingénierie de détection pratique pour les équipes SOC.
L'objectif n'est pas de fournir des conseils d'exploitation. L'objectif est de montrer quelles sources de télémétrie ont été utiles lors de la validation, quels artefacts ont été créés, et comment les défenseurs peuvent détecter et répondre à cette activité.
| Domaine | Constatation |
|---|---|
| Vulnérabilité | CVE-2026-48907 dans Joomla Content Editor (JCE) ; workflow non authentifié de création/import de profil pouvant conduire à un téléchargement PHP et à une exécution de code. |
| Version testée | JCE 2.9.99.4. Le panneau d'administration Joomla montrait une mise à jour disponible vers 2.9.99.7. |
| Résultat en laboratoire | La validation du PoC public a confirmé l'exécution de code à distance (RCE) et a créé un webshell PHP dans /tmp de Joomla sous la forme jce*.xml.php. Les commandes ont été exécutées en tant que www-data. |
| Télémétrie la plus précieuse | Apache access.log, Apache/PHP error.log, télémétrie auditd execve et artefacts du système de fichiers dans joomla_html/tmp. |
| Journaux Joomla | Utiles comme contexte complémentaire, mais insuffisants seuls. Les journaux d'application Joomla n'ont pas reconstruit la chaîne complète : exploit → webshell → exécution de commandes. |
| Priorité SOC | Critique pour les instances Joomla exposées sur internet ou les instances Joomla accessibles depuis des réseaux internes moins fiables. |
| Paramètre | Valeur |
|---|---|
| URL de l'application | http://172.20.10.3:9999 |
| Conteneur Joomla | joomla-jce-lab, image joomla:5-apache |
| Conteneur de base de données | joomla-jce-db, image mariadb:11 |
| Mappage de ports | 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 |
| Source de test | Windows 11, IP 172.20.10.2 |
| Journalisation | Journaux d'accès/erreurs Apache, journaux Joomla, auditd, journaux Docker, artefacts du système de fichiers |







Une constatation opérationnelle clé est que les journaux d'application Joomla n'étaient pas suffisants.
Lors du test en laboratoire, les journaux Joomla ont enregistré un contexte au niveau de l'application, comme un événement joomlafailure, mais ils n'ont pas montré la chaîne d'exploitation complète. La chaîne utile était visible principalement dans :
access.logerror.logexecvejoomla_html/tmpPour la surveillance SOC, les journaux Joomla doivent être traités comme une télémétrie de soutien, et non comme la source de détection principale pour cette vulnérabilité.
Chaîne de haut niveau observée lors du test contrôlé :
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
Les preuves les plus claires étaient présentes dans 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
Le journal d'erreurs Apache/PHP contenait des traces précieuses liées à l'analyse syntaxique :
simplexml_load_string()
administrator/components/com_jce/helpers/profiles.php
RXST
RXEND
Les marqueurs RXST et RXEND étaient des indicateurs particulièrement utiles pour cette famille spécifique de PoC car ils apparaissaient dans le chemin de traitement des charges utiles.
Les journaux Joomla ont confirmé que la journalisation de l'application était active, mais ils n'ont pas reconstruit l'exploitation :
#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.
Cela signifie que la collecte des seuls journaux Joomla peut manquer les preuves les plus importantes de l'exploitation de CVE-2026-48907.
Le test a créé des fichiers webshell PHP dans tmp de Joomla :
/var/www/html/tmp/jce624jdcfx.xml.php
/var/www/html/tmp/jceolxtshs3.xml.php
Chemins côté hôte dans le laboratoire :
/home/user/joomla-jce-lab/joomla_html/tmp/jce624jdcfx.xml.php
/home/user/joomla-jce-lab/joomla_html/tmp/jceolxtshs3.xml.php
Hachages SHA256 observés :