Validação em laboratório defensivo e orientações de detecção para SOC da CVE-2026-48907 no Joomla JCE <= 2.9.99.4, incluindo telemetria Apache/Joomla/auditd, artefatos de webshell, regras Sigma, mapeamento MITRE ATT&CK e recomendações de mitigação.
Relatório de validação defensiva e notas de detecção orientadas a SOC para a CVE-2026-48907, que afeta o Joomla Content Editor (JCE) até a versão 2.9.99.4.
Este repositório documenta uma validação controlada em laboratório da CVE-2026-48907 no Joomla JCE e tem foco em engenharia de detecção prática para equipes de SOC.
O objetivo não é fornecer orientação de exploração. O objetivo é mostrar quais fontes de telemetria foram úteis durante a validação, quais artefatos foram criados e como os defensores podem detectar e responder a essa atividade.
| Área | Resultado |
|---|---|
| Vulnerabilidade | CVE-2026-48907 no Joomla Content Editor (JCE); fluxo não autenticado de criação/importação de perfis que pode levar ao upload de PHP e à execução de código. |
| Versão testada | JCE 2.9.99.4. O painel administrativo do Joomla exibiu uma atualização disponível para 2.9.99.7. |
| Resultado no laboratório | A validação do PoC público confirmou RCE e criou um webshell PHP no /tmp do Joomla como jce*.xml.php. Os comandos foram executados como www-data. |
| Telemetria mais valiosa | access.log do Apache, error.log do Apache/PHP, telemetria execve do auditd e artefatos do sistema de arquivos em joomla_html/tmp. |
| Logs do Joomla | Úteis como contexto complementar, mas insuficientes por si só. Os logs de aplicação do Joomla não reconstruíram a cadeia completa: exploração → webshell → execução de comandos. |
| Prioridade para SOC | Crítica para instâncias do Joomla expostas à internet ou instâncias do Joomla acessíveis a partir de redes internas menos confiáveis. |
| Parâmetro | Valor |
|---|---|
| URL da aplicação | http://172.20.10.3:9999 |
| Contêiner do Joomla | joomla-jce-lab, imagem joomla:5-apache |
| Contêiner do banco de dados | joomla-jce-db, imagem mariadb:11 |
| Mapeamento de portas | 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 |
| Origem do teste | Windows 11, IP 172.20.10.2 |
| Registro de logs | Logs de acesso/erro do Apache, logs do Joomla, auditd, logs do Docker, artefatos do sistema de arquivos |







Uma constatação operacional importante é que os logs de aplicação do Joomla não foram suficientes.
Durante o teste de laboratório, os logs do Joomla registraram contexto no nível da aplicação, como um evento joomlafailure, mas não mostraram a cadeia completa de exploração. A cadeia útil era visível principalmente em:
access.log do Apacheerror.log do Apache/PHPexecve do auditdjoomla_html/tmpPara o monitoramento por SOC, os logs do Joomla devem ser tratados como telemetria complementar, e não como a principal fonte de detecção para esta vulnerabilidade.
Cadeia de alto nível observada durante o teste controlado:
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
A evidência mais clara estava presente no access.log do Apache:
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
O log de erros do Apache/PHP continha rastros valiosos relacionados ao parser:
simplexml_load_string()
administrator/components/com_jce/helpers/profiles.php
RXST
RXEND
Os marcadores RXST e RXEND foram indicadores particularmente úteis para esta família específica de PoC, pois apareceram no caminho de manipulação do payload.
Os logs do Joomla confirmaram que o registro de aplicação estava ativo, mas não reconstruíram a exploração:
#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.
Isso significa que coletar apenas os logs do Joomla pode deixar de lado a evidência mais importante da exploração da CVE-2026-48907.
O teste criou arquivos de webshell PHP no tmp do Joomla:
/var/www/html/tmp/jce624jdcfx.xml.php
/var/www/html/tmp/jceolxtshs3.xml.php
Caminhos no lado do host, no laboratório:
/home/user/joomla-jce-lab/joomla_html/tmp/jce624jdcfx.xml.php
/home/user/joomla-jce-lab/joomla_html/tmp/jceolxtshs3.xml.php
Hashes SHA256 observados:
b6fa303daef8aa8cb39566c73d2cb4a458efb2b1fba48052dd039d45c3beb0aa jce624jdcfx.xml.php
f8bcc802ab56b845c968ed6727228f200f8f4bcd332b8ce82c6980d93ac228fd jceolxtshs3.xml.php