Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-48907-Joomla-JCE-detection — Defensive lab validation and SOC detection guidance for CVE-2026-48907 in Joomla JCE <= 2.9.99.4, including Apache/Joomla/auditd telemetry, webshell artifacts, Sigma rules, MITRE ATT&CK mapping and mitigation recommendations. | Kitploit
Tools/GitHubGitHub/g0thamrabb1t/cve-2026-48907-joomla-jce-detection
Vulnerability AnalysisExploitationForensicsWeb SecurityThreat IntelligencePapers & ResearchLearning & EducationIncident ResponseLog Analysis
GitHubg0thamrabb1t/cve-2026-48907-joomla-jce-detection

CVE-2026-48907-Joomla-JCE-detection

Defensive lab validation and SOC detection guidance for CVE-2026-48907 in Joomla JCE <= 2.9.99.4, including Apache/Joomla/auditd telemetry, webshell artifacts, Sigma rules, MITRE ATT&CK mapping and mitigation recommendations.

View Repository
132 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Joomla JCE CVE-2026-48907 — PoC Validation, Webshell Artifacts and SOC Detection

Defensive validation report and SOC-oriented detection notes for CVE-2026-48907 affecting Joomla Content Editor (JCE) versions up to 2.9.99.4.

Repository purpose

This repository documents a controlled laboratory validation of CVE-2026-48907 in Joomla JCE and focuses on practical detection engineering for SOC teams.

The goal is not to provide exploitation guidance. The goal is to show which telemetry sources were useful during validation, which artifacts were created, and how defenders can detect and respond to this activity.

Reports

  • English PDF report
  • Polish PDF report
  • English DOCX report
  • Polish DOCX report

Summary

AreaFinding
VulnerabilityCVE-2026-48907 in Joomla Content Editor (JCE); unauthenticated profile creation/import workflow that may lead to PHP upload and code execution.
Tested versionJCE 2.9.99.4. The Joomla administrator panel showed an available update to 2.9.99.7.
Lab resultPublic PoC validation confirmed RCE and created a PHP webshell in Joomla /tmp as jce*.xml.php. Commands were executed as www-data.
Most valuable telemetryApache access.log, Apache/PHP error.log, auditd execve telemetry and filesystem artifacts in joomla_html/tmp.
Joomla logsUseful as supporting context, but insufficient on their own. Joomla application logs did not reconstruct the full chain: exploit → webshell → command execution.
SOC priorityCritical for internet-facing Joomla instances or Joomla instances reachable from less trusted internal networks.

Public references

  • Public PoC repository: JoomlaSniper
  • CVE Record: CVE-2026-48907
  • NVD: CVE-2026-48907
  • CISA KEV Catalog: Known Exploited Vulnerabilities Catalog

Lab environment

ParameterValue
Application URLhttp://172.20.10.3:9999
Joomla containerjoomla-jce-lab, image joomla:5-apache
Database containerjoomla-jce-db, image mariadb:11
Port mapping0.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
Test sourceWindows 11, IP 172.20.10.2
LoggingApache access/error logs, Joomla logs, auditd, Docker logs, filesystem artifacts

Evidence screenshots

Joomla lab site

Joomla lab site

Installed vulnerable JCE version

JCE installed version

Joomla shows an available JCE update

JCE update available

Joomla dashboard updates tile

PoC validation result in the lab

JoomlaSniper RCE confirmed

Interactive shell and command execution as www-data

JoomlaSniper interactive shell

File artifacts in Joomla tmp directory

Joomla tmp webshell artifacts

Key defensive observation

A key operational finding is that Joomla application logs were not enough.

During the lab test, Joomla logs recorded application-level context such as a joomlafailure event, but they did not show the full exploitation chain. The useful chain was visible mainly in:

  1. Apache access.log
  2. Apache/PHP error.log
  3. auditd execve records
  4. filesystem artifacts in joomla_html/tmp

For SOC monitoring, Joomla logs should be treated as supporting telemetry, not as the primary detection source for this vulnerability.

Observed attack chain

High-level chain observed during the controlled test:

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

Observed HTTP sequence

The clearest evidence was present in 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

Apache/PHP error log indicators

The Apache/PHP error log contained valuable parser-related traces:

root@kitploit:~
simplexml_load_string()
administrator/components/com_jce/helpers/profiles.php
RXST
RXEND

The RXST and RXEND markers were particularly useful indicators for this specific PoC family because they appeared in the payload handling path.

Joomla log limitation

Joomla logs confirmed application logging was active, but they did not reconstruct 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.

This means that collecting only Joomla logs may miss the most important evidence of CVE-2026-48907 exploitation.

Filesystem artifacts

The test created PHP webshell files in Joomla tmp:

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

Host-side paths in the lab:

root@kitploit:~
/home/user/joomla-jce-lab/joomla_html/tmp/jce624jdcfx.xml.php
/home/user/joomla-jce-lab/joomla_html/tmp/jceolxtshs3.xml.php

Observed SHA256 hashes:

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

Hash-based detection should be treated as low-resilience because file names and payloads may vary. Path, extension, ownership and behavioral correlation are more useful.

auditd evidence

auditd confirmed that the web server user executed commands from the Joomla tmp directory:

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

This is the strongest confirmation that the activity was not only scanning, but actual remote code execution.

Detection logic

The strongest detection is correlation-based:

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

Detection priority

SeverityConditionSOC action
LowGET /plugins/editors/jce/jce.xml from an unusual sourceTreat as reconnaissance and correlate with later requests.
MediumPOST /index.php?option=com_jce without an administrator referer or from an unknown IPAlert and review subsequent /tmp requests.
HighPOST com_jce followed by GET /tmp/*.php or /tmp/*.xml.phpVerify filesystem artifacts and PHP error logs immediately.
CriticalGET /tmp/jce*.xml.php?c= or auditd showing www-data launching shell/system commandsTreat as confirmed RCE/webshell, isolate or restrict the host and preserve evidence.

Indicators and hunting patterns

HTTP patterns

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="

Filesystem patterns

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

Example triage commands

Use these only on systems you own or are authorized to investigate.

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"

Sigma rules

Separate Sigma rule files are available in rules/sigma:

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

Recommended response

StepActionGoal
1Check whether the instance runs JCE <= 2.9.99.4 or shows an available JCE update.Confirm vulnerable state.
2Search access/error logs for com_jce, profiles.import, /tmp/*.php, jce*.xml.php.Identify attempted or successful exploitation.
3Inspect tmp, images, and media for PHP/PHTML/PHAR files and unusual names.Detect webshells or backdoors.
4Review auditd/EDR for www-data spawning shells or system utilities.Confirm code execution.
5If webshell/RCE is confirmed, isolate the host or restrict traffic to the application.Stop further activity.
6Preserve artifacts, remove webshells, review JCE profiles, Joomla accounts, cron jobs and modified files.Triage and eradication.
7Update JCE to the latest supported version and review other Joomla instances.Mitigation and risk reduction.

Mitigation recommendations

PriorityRecommendationRationale
P1Update JCE to the latest supported version for the Joomla/PHP branch.JCE 2.9.99.4 was vulnerable in the lab and Joomla showed an update to 2.9.99.7.
P1After patching, check for webshells and suspicious JCE profiles.Updating closes the entry point but does not remove artifacts left before patching.
P1Block PHP execution in tmp, images, media, cache, and upload directories.Even if upload succeeds, PHP execution blocking breaks the RCE chain.
P2Add WAF or request filtering for option=com_jce and task=profiles.import.Helps detect and block exploitation attempts before they reach PHP.
P2Centrally ingest Apache access logs, PHP error logs and auditd/EDR telemetry.Joomla application logs alone were insufficient.
P2Implement periodic Joomla extension inventory and update-state checks.The Joomla panel exposed the JCE update signal; this should feed VM/SOC workflows.
P3Maintain a file baseline and alert on new PHP files outside controlled directories.Helps detect webshells and persistence after compromise.

Example Apache hardening direction

The exact configuration depends on Apache/PHP deployment model. The goal is to prevent PHP execution in directories that should never execute 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>

MITRE ATT&CK mapping

TechniqueNameRationale
T1190Exploit Public-Facing ApplicationHTTP exploitation of the Joomla/JCE endpoint without authentication.
T1505.003Server Software Component: Web ShellPHP webshell created as /tmp/jce*.xml.php.
T1059.004Command and Scripting Interpreter: Unix Shell/usr/bin/dash executed by www-data.
T1033System Owner/User Discoverywhoami and id executed through the webshell.
T1082System Information Discoveryhostname executed through the webshell.
T1083File and Directory Discoverypwd and activity in /var/www/html/tmp.

Risk assessment

The lab confirmed practical exploitation against JCE 2.9.99.4. Authentication to Joomla was not required in the observed flow, and the public PoC automated version detection and webshell creation.

For real environments, the risk is high to critical when Joomla is internet-facing or reachable from less trusted internal networks. A successful attack may leave a persistent webshell, so patching without artifact inspection is not sufficient after suspected exposure.

Disclaimer

This repository is intended for defensive research, SOC detection engineering and vulnerability management. It does not contain exploit code. Any testing must be performed only in systems you own or are explicitly authorized to assess.

Download Tool