Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-48907-Joomla-JCE-detection — 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. | Kitploit
Outils/GitHubGitHub/g0thamrabb1t/cve-2026-48907-joomla-jce-detection
Analyse des VulnérabilitésExploitationAnalyse ForensiqueSécurité WebRenseignement sur les MenacesArticles et RechercheApprentissage et ÉducationRéponse aux IncidentsAnalyse de Journaux
GitHubg0thamrabb1t/cve-2026-48907-joomla-jce-detection

CVE-2026-48907-Joomla-JCE-detection

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.

Voir le dépôt
13il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Joomla JCE CVE-2026-48907 — Validation du PoC, artefacts de webshell et détection SOC

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.

Objectif du dépôt

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é.

Rapports

  • Rapport PDF en anglais
  • Rapport PDF en polonais
  • Rapport DOCX en anglais
  • Rapport DOCX en polonais

Résumé

DomaineConstatation
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éeJCE 2.9.99.4. Le panneau d'administration Joomla montrait une mise à jour disponible vers 2.9.99.7.
Résultat en laboratoireLa 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écieuseApache access.log, Apache/PHP error.log, télémétrie auditd execve et artefacts du système de fichiers dans joomla_html/tmp.
Journaux JoomlaUtiles 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é SOCCritique pour les instances Joomla exposées sur internet ou les instances Joomla accessibles depuis des réseaux internes moins fiables.

Références publiques

  • Dépôt PoC public : JoomlaSniper
  • Enregistrement CVE : CVE-2026-48907
  • NVD : CVE-2026-48907
  • Catalogue CISA KEV : Known Exploited Vulnerabilities Catalog

Environnement de laboratoire

ParamètreValeur
URL de l'applicationhttp://172.20.10.3:9999
Conteneur Joomlajoomla-jce-lab, image joomla:5-apache
Conteneur de base de donnéesjoomla-jce-db, image mariadb:11
Mappage de ports0.0.0.0:9999 -> 80/tcp
ApacheApache/2.4.67 (Debian)
PHPPHP 8.3.31
MariaDB11.8.8-MariaDB
JoomlaJoomla 5.4.6 Stable
JCE2.9.99.4
Source de testWindows 11, IP 172.20.10.2
JournalisationJournaux d'accès/erreurs Apache, journaux Joomla, auditd, journaux Docker, artefacts du système de fichiers

Captures d'écran des preuves

Site du laboratoire Joomla

Site du laboratoire Joomla

Version JCE vulnérable installée

Version JCE installée

Joomla affiche une mise à jour JCE disponible

Mise à jour JCE disponible

Tuile des mises à jour du tableau de bord Joomla

Résultat de la validation du PoC en laboratoire

JoomlaSniper RCE confirmé

Shell interactif et exécution de commandes en tant que www-data

Shell interactif JoomlaSniper

Artefacts de fichiers dans le répertoire tmp de Joomla

Artefacts de webshell dans tmp Joomla

Observation défensive clé

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 :

  1. Apache access.log
  2. Apache/PHP error.log
  3. Enregistrements auditd execve
  4. Artefacts du système de fichiers dans joomla_html/tmp

Pour 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 d'attaque observée

Chaîne de haut niveau observée lors du test contrôlé :

root@kitploit:~
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

Séquence HTTP observée

Les preuves les plus claires étaient présentes dans Apache access.log :

root@kitploit:~
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

Indicateurs du journal d'erreurs Apache/PHP

Le journal d'erreurs Apache/PHP contenait des traces précieuses liées à l'analyse syntaxique :

root@kitploit:~
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.

Limite du journal Joomla

Les journaux Joomla ont confirmé que la journalisation de l'application était active, mais ils n'ont pas reconstruit l'exploitation :

root@kitploit:~
#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.

Artefacts du système de fichiers

Le test a créé des fichiers webshell PHP dans tmp de Joomla :

root@kitploit:~
/var/www/html/tmp/jce624jdcfx.xml.php
/var/www/html/tmp/jceolxtshs3.xml.php

Chemins côté hôte dans le laboratoire :

root@kitploit:~
/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 :

root@kitploit:~
b6fa303daef8aa8cb39566c73d2cb4a458efb2b1fba48052dd039d45c3beb0aa  jce624jdcfx.xml.php
f8bcc802ab56b845c968ed6727228f200f8f4bcd332b8ce82c6980d93ac228fd  jceolxtshs3.xml.php

La détection basée sur les hachages doit être traitée comme peu résiliente car les noms de fichiers et les charges utiles peuvent varier. Le chemin, l'extension, la propriété et la corrélation comportementale sont plus utiles.

Preuves auditd

auditd a confirmé que l'utilisateur du serveur web a exécuté des commandes depuis le répertoire tmp de Joomla :

root@kitploit:~
CWD=/var/www/html/tmp uid=www-data comm=sh exe=/usr/bin/dash
CWD=/var/www/html/tmp uid=www-data comm=id exe=/usr/bin/id
CWD=/var/www/html/tmp uid=www-data comm=hostname exe=/usr/bin/hostname
CWD=/var/www/html/tmp uid=www-data comm=whoami exe=/usr/bin/whoami

Il s'agit de la confirmation la plus solide que l'activité n'était pas seulement du scan, mais une véritable exécution de code à distance.

Logique de détection

La détection la plus forte est basée sur la corrélation :

root@kitploit:~
GET /plugins/editors/jce/jce.xml
    followed by
POST /index.php?option=com_jce
    followed by
GET /tmp/jce*.xml.php
    followed by
GET /tmp/jce*.xml.php?c=
    and/or
auditd: www-data executes /usr/bin/dash from /var/www/html/tmp

Priorité de détection

SévéritéConditionAction SOC
FaibleGET /plugins/editors/jce/jce.xml depuis une source inhabituelleTraiter comme reconnaissance et corréler avec les requêtes ultérieures.
MoyennePOST /index.php?option=com_jce sans referer administrateur ou depuis une IP inconnueAlerter et examiner les requêtes ultérieures vers /tmp.
ÉlevéePOST com_jce suivi de GET /tmp/*.php ou /tmp/*.xml.phpVérifier immédiatement les artefacts du système de fichiers et les journaux d'erreurs PHP.
CritiqueGET /tmp/jce*.xml.php?c= ou auditd montrant www-data lançant des commandes shell/systèmeTraiter comme RCE/webshell confirmé, isoler ou restreindre l'hôte et préserver les preuves.

Indicateurs et modèles de chasse

Modèles HTTP

root@kitploit:~
/plugins/editors/jce/jce.xml
/index.php?option=com_jce
/tmp/jce[a-z0-9]{8}\.xml\.php
/tmp/.*\.(php|phtml|phar)(\?| )
cs-uri-query contains "c="

Modèles du système de fichiers

root@kitploit:~
joomla_html/tmp/jce*.xml.php
/var/www/html/tmp/jce*.xml.php
RXST
RXEND
shell_exec
system
passthru
exec
$_GET['c']

Exemples de commandes de triage

Utilisez ces commandes uniquement sur des systèmes dont vous êtes propriétaire ou que vous êtes autorisé à examiner.

root@kitploit:~
grep -RniE "com_jce|profiles\.import|task=profiles|/tmp/.*\.php|RXST|RXEND" apache_logs joomla_html/administrator/logs 2>/dev/null
root@kitploit:~
find ./joomla_html/tmp ./joomla_html/images ./joomla_html/media \
  -type f \( -iname "*.php" -o -iname "*.phtml" -o -iname "*.phar" -o -iname "*.xml.php" \) -ls
root@kitploit:~
sudo ausearch -k wwwdata_exec -i | grep -E "uid=www-data|comm=sh|/usr/bin/dash|/var/www/html/tmp|whoami|hostname| id |pwd"

Règles Sigma

Des fichiers de règles Sigma séparés sont disponibles dans rules/sigma :

  • joomla_jce_webshell_tmp_access.yml
  • joomla_jce_component_exploit_attempt.yml
  • web_user_shell_from_joomla_tmp_auditd.yml

Réponse recommandée

ÉtapeActionObjectif
1Vérifier si l'instance exécute JCE <= 2.9.99.4 ou affiche une mise à jour JCE disponible.Confirmer l'état vulnérable.
2Rechercher dans les journaux d'accès/erreurs com_jce, profiles.import, /tmp/*.php, jce*.xml.php.Identifier une tentative d'exploitation réussie ou non.
3Inspecter tmp, images et media pour les fichiers PHP/PHTML/PHAR et les noms inhabituels.Détecter les webshells ou les portes dérobées.
4Examiner auditd/EDR pour www-data générant des shells ou des utilitaires système.Confirmer l'exécution de code.
5Si un webshell/RCE est confirmé, isoler l'hôte ou restreindre le trafic vers l'application.Arrêter toute activité ultérieure.
6Préserver les artefacts, supprimer les webshells, examiner les profils JCE, les comptes Joomla, les tâches cron et les fichiers modifiés.Tri et éradication.
7Mettre à jour JCE vers la dernière version prise en charge et examiner les autres instances Joomla.Atténuation et réduction des risques.

Recommandations d'atténuation

PrioritéRecommandationJustification
P1Mettre à jour JCE vers la dernière version prise en charge pour la branche Joomla/PHP.JCE 2.9.99.4 était vulnérable en laboratoire et Joomla affichait une mise à jour vers 2.9.99.7.
P1Après le correctif, vérifier la présence de webshells et de profils JCE suspects.La mise à jour ferme le point d'entrée mais ne supprime pas les artefacts laissés avant le correctif.
P1Bloquer l'exécution PHP dans les répertoires tmp, images, media, cache et les répertoires de téléchargement.Même si le téléchargement réussit, le blocage de l'exécution PHP casse la chaîne RCE.
P2Ajouter un WAF ou un filtrage des requêtes pour option=com_jce et task=profiles.import.Aide à détecter et bloquer les tentatives d'exploitation avant qu'elles n'atteignent PHP.
P2Ingérer de manière centralisée les journaux d'accès Apache, les journaux d'erreurs PHP et la télémétrie auditd/EDR.Les seuls journaux d'application Joomla étaient insuffisants.
P2Mettre en œuvre un inventaire périodique des extensions Joomla et des vérifications de l'état des mises à jour.Le panneau Joomla exposait le signal de mise à jour JCE ; cela devrait alimenter les workflows VM/SOC.
P3Maintenir une référence de fichiers et alerter sur les nouveaux fichiers PHP en dehors des répertoires contrôlés.Aide à détecter les webshells et la persistance après une compromission.

Exemple de direction de durcissement Apache

La configuration exacte dépend du modèle de déploiement Apache/PHP. L'objectif est d'empêcher l'exécution PHP dans les répertoires qui ne devraient jamais exécuter de scripts.

root@kitploit:~
<Directory "/var/www/html/tmp">
    php_admin_flag engine off
    Options -ExecCGI
    RemoveHandler .php .phtml .phar
    <FilesMatch "\.(php|phtml|phar)$">
        Require all denied
    </FilesMatch>
</Directory>

<Directory "/var/www/html/images">
    php_admin_flag engine off
    Options -ExecCGI
    RemoveHandler .php .phtml .phar
    <FilesMatch "\.(php|phtml|phar)$">
        Require all denied
    </FilesMatch>
</Directory>

Cartographie MITRE ATT&CK

TechniqueNomJustification
T1190Exploiter une application exposée au publicExploitation HTTP du point de terminaison Joomla/JCE sans authentification.
T1505.003Composant logiciel serveur : Web ShellWebshell PHP créé sous /tmp/jce*.xml.php.
T1059.004Interpréteur de commandes et de scripts : Shell Unix/usr/bin/dash exécuté par www-data.
T1033Découverte du propriétaire/utilisateur du systèmewhoami et id exécutés via le webshell.
T1082Découverte d'informations systèmehostname exécuté via le webshell.
T1083Découverte de fichiers et de répertoirespwd et activité dans /var/www/html/tmp.

Évaluation des risques

Le laboratoire a confirmé une exploitation pratique contre JCE 2.9.99.4. L'authentification à Joomla n'était pas requise dans le flux observé, et le PoC public a automatisé la détection de version et la création de webshell.

Pour les environnements réels, le risque est élevé à critique lorsque Joomla est exposé sur internet ou accessible depuis des réseaux internes moins fiables. Une attaque réussie peut laisser un webshell persistant, donc appliquer le correctif sans inspection des artefacts n'est pas suffisant après une exposition suspectée.

Avertissement

Ce dépôt est destiné à la recherche défensive, à l'ingénierie de détection SOC et à la gestion des vulnérabilités. Il ne contient pas de code d'exploitation. Tout test doit être effectué uniquement sur des systèmes dont vous êtes propriétaire ou que vous êtes explicitement autorisé à évaluer.

Télécharger l’outil