Лабораторная валидация защитных механизмов и рекомендации по обнаружению для SOC по CVE-2026-48907 в Joomla JCE <= 2.9.99.4, включая телеметрию Apache/Joomla/auditd, артефакты веб-шеллов, правила Sigma, сопоставление с MITRE ATT&CK и рекомендации по смягчению последствий.
Отчёт о защитной валидации и ориентированные на SOC заметки по обнаружению для CVE-2026-48907, затрагивающего Joomla Content Editor (JCE) версий до 2.9.99.4 включительно.
Этот репозиторий документирует контролируемую лабораторную валидацию CVE-2026-48907 в Joomla JCE и сосредоточен на практической разработке правил обнаружения для команд SOC.
Цель — не предоставлять руководство по эксплуатации. Цель — показать, какие источники телеметрии были полезны при валидации, какие артефакты были созданы и как защитники могут обнаруживать эту активность и реагировать на неё.
| Область | Результат |
|---|---|
| Уязвимость | CVE-2026-48907 в Joomla Content Editor (JCE); неаутентифицированный рабочий процесс создания/импорта профилей, который может привести к загрузке PHP и выполнению кода. |
| Протестированная версия | JCE 2.9.99.4. Панель администратора Joomla показала доступное обновление до 2.9.99.7. |
| Результат в лаборатории | Валидация публичного PoC подтвердила RCE и создала PHP-веб-шелл в /tmp Joomla как jce*.xml.php. Команды выполнялись от имени www-data. |
| Наиболее ценная телеметрия | Apache access.log, Apache/PHP error.log, телеметрия auditd execve и артефакты файловой системы в joomla_html/tmp. |
| Журналы Joomla | Полезны как вспомогательный контекст, но сами по себе недостаточны. Журналы приложения Joomla не восстановили полную цепочку: эксплойт → веб-шелл → выполнение команд. |
| Приоритет для SOC | Критический для Joomla-инстансов, доступных из интернета, или Joomla-инстансов, достижимых из менее доверенных внутренних сетей. |
| Параметр | Значение |
|---|---|
| URL приложения | http://172.20.10.3:9999 |
| Контейнер Joomla | joomla-jce-lab, образ joomla:5-apache |
| Контейнер базы данных | joomla-jce-db, образ mariadb:11 |
| Проброс портов | 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 |
| Источник теста | Windows 11, IP 172.20.10.2 |
| Логирование | Журналы доступа/ошибок Apache, журналы Joomla, auditd, журналы Docker, артефакты файловой системы |







Ключевой операционный вывод: журналов приложения Joomla было недостаточно.
Во время лабораторного теста журналы Joomla фиксировали контекст уровня приложения, например событие joomlafailure, но не показывали полную цепочку эксплуатации. Полезная цепочка была видна в основном в:
access.logerror.logexecvejoomla_html/tmpДля мониторинга SOC журналы Joomla следует рассматривать как вспомогательную телеметрию, а не как основной источник обнаружения данной уязвимости.
Обобщённая цепочка, наблюдавшаяся в ходе контролируемого теста:
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
Наиболее явные доказательства присутствовали в 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
Журнал ошибок Apache/PHP содержал ценные следы, связанные с работой парсера:
simplexml_load_string()
administrator/components/com_jce/helpers/profiles.php
RXST
RXEND
Маркеры RXST и RXEND были особенно полезными индикаторами для этого конкретного семейства PoC, поскольку они появлялись в пути обработки полезной нагрузки.
Журналы Joomla подтвердили, что логирование приложения было активным, но они не восстановили эксплуатацию:
#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.
Это означает, что сбор только журналов Joomla может пропустить наиболее важные доказательства эксплуатации CVE-2026-48907.
В ходе теста были созданы PHP-файлы веб-шелла в tmp Joomla:
/var/www/html/tmp/jce624jdcfx.xml.php
/var/www/html/tmp/jceolxtshs3.xml.php
Пути на стороне хоста в лаборатории:
/home/user/joomla-jce-lab/joomla_html/tmp/jce624jdcfx.xml.php
/home/user/joomla-jce-lab/joomla_html/tmp/jceolxtshs3.xml.php
Наблюдавшиеся SHA256-хеши:
b6fa303daef8aa8cb39566c73d2cb4a458efb2b1fba48052dd039d45c3beb0aa jce624jdcfx.xml.php
f8bcc802ab56b845c968ed6727228f200f8f4bcd332b8ce82c6980d93ac228fd jceolxtshs3.xml.php
Обнаружение на основе хешей следует считать низкоустойчивым, поскольку имена файлов и полезные нагрузки могут различаться. Более полезны корреляция по пути, расширению, владельцу и поведению.