
CVE-2026-65891 PoC — Joomla Content Editor file rename vulnerability (auth required, fixed in JCE 2.20.2)
Сканер доказательства концепции для CVE-2026-65891 в расширении Joomla Content Editor (JCE).
Некорректная проверка входных данных в функции переименования файлового менеджера JCE позволяет аутентифицированному пользователю с правами управления файлами:
.shell.php)Только авторизованное тестирование. Используйте только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.
| Поле | Значение |
|---|---|
| CVE | CVE-2026-65891 |
| Продукт | JCE (com_jce) — Widget Factory Limited |
| Затронутые версии | JCE < 2.20.2 (вплоть до 2.20.1 / 2.9.99.9) |
| Исправлено | JCE 2.20.2+ (2026-07-29) |
| CVSS 3.1 | 6.5 Средний |
| CWE | CWE-20 — Некорректная проверка входных данных |
| Аутентификация | Требуется — права JCE на загрузку и переименование |
| KEV | Нет |
Это не неаутентифицированное RCE. Не путайте с CVE-2026-48907 (импорт профиля JCE, без аутентификации).
Обработчики переименования browser / imgmanager в JCE принимали имена целевых файлов, которые должны были отклоняться:
. (скрытые в POSIX)Исправлено в 2.20.2: проверка расширения при переименовании/копировании/перемещении и отсутствие незаметной перезаписи.
check (без учётных данных)jce.xml / ресурсовprobe / exploit (требуются учётные данные)/administrator/ (или --frontend-login).txt через plugin.rpc (плагин browser).cve65891_<random>.txt (скрытый файл)GET /images/.cve65891_*.txt — если маркер доступен для чтения → EXPLOITEDgit clone https://github.com/YOUR_USER/CVE-2026-65891.git
cd CVE-2026-65891
pip install -r requirements.txt
Требования: Python 3.10+
# Version / fingerprint scan (bulk, no auth)
python poc_cve_2026_65891.py -f targets.txt -m check -j 30 -o version_hits.txt
# Single target — full check
python poc_cve_2026_65891.py -u https://joomla.example -m check -v
# Authenticated rename test
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--user editor --pass 'YourPassword' -v
# Session cookie instead of password
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--cookie-file cookie.txt -v
EXPLOITED https://joomla.example joomla=True jce=True ver=2.20.1 auth=YES upload=YES rename=YES hidden=YES url=https://joomla.example/images/.cve65891_a1b2c3d4.txt
VULNERABLE https://site.example joomla=True jce=True ver=2.9.99.9 rename=YES err=rename_ok_but_hidden_not_readable
SUSPECT https://old.example joomla=True jce=True ver=2.20.1 err=need_auth_--user_--pass_or_--cookie-file
В -o записываются только строки VULNERABLE и EXPLOITED.
Тестовая учётная запись должна иметь профиль редактора JCE со следующими правами:
Как правило: Editor, Manager или Administrator — не обычный зарегистрированный пользователь.
Обновите JCE до 2.20.2 или новее
Extensions → Manage → Update или загрузите с joomlacontenteditor.net
Пока не установлен патч: отключите Rename в настройках профиля JCE для недоверенных групп пользователей (Image Manager, File Browser).
Ищите аутентифицированные запросы к:
POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser
С method=rename / renameItem и именами назначения, начинающимися с ..
Неожиданные скрытые файлы в путях загрузки JCE (/images/, /media/).
Этот инструмент предназначен только для исследований в области безопасности, обучения и авторизованного тестирования на проникновение. Несанкционированный доступ к компьютерным системам является незаконным. Автор не несёт ответственности за неправомерное использование.
MIT — см. LICENSE.
| Флаг | Описание |
|---|
-u, --url | Одиночный базовый URL Joomla |
-f, --file | Список целей (по одному URL в строке) |
-m, --mode | check · probe · exploit · full (по умолчанию: full) |
-j, --threads | Параллельные потоки (по умолчанию: 15) |
-t, --timeout | Таймаут HTTP в секундах (по умолчанию: 25) |
-o, --output | Записывать только срабатывания VULNERABLE / EXPLOITED |
--user | Имя пользователя Joomla |
--pass | Пароль Joomla |
--cookie-file | Файл с сырым заголовком Cookie: (пропуск входа) |
--upload-dir | Каталог загрузки JCE (по умолчанию: images) |
--frontend-login | Вход через фронтенд вместо входа администратора |
-v, --verbose | Отладочный вывод |
| Режим | Аутентификация | Описание |
|---|
check | Нет | Joomla + JCE + версия |
probe | Да | Загрузка + скрытое переименование + проверка |
exploit | Да | То же, что и probe |
full | Да* | Сначала check, затем probe (*для probe требуется аутентификация) |