CVE-2026-37603: обход CAPTCHA в админ-панели pH7Builder
В pH7Builder (pH7 Social Dating CMS) до версии 19.2.0 включительно обнаружена уязвимость, позволяющая обойти CAPTCHA на странице входа администратора. Атакующий может неограниченно перебирать пароли, получая новую сессию перед каждой попыткой. Проблема затрагивает все развёртывания CMS, где административный вход доступен извне.
Подробности
Уязвимость относится к классу CWE-307 «Ненадлежащее ограничение количества попыток аутентификации». Механизм защиты от перебора в административной панели pH7Builder построен на флаге CAPTCHA, который хранится в PHP-сессии под именем captcha_admin_enabled. Элемент формы CAPTCHA добавляется в страницу входа только при наличии этого флага в текущей сессии. Такая реализация создаёт логическую брешь: если злоумышленник начинает каждую попытку входа с новой сессией, флаг captcha_admin_enabled в ней отсутствует, а значит, проверка CAPTCHA ему вообще не предъявляется. В результате удалённый неаутентифицированный атакующий может выполнять неограниченное число попыток подбора учётных данных администратора, не сталкиваясь с challenge-механизмом. Опасность усугубляется тем, что порог срабатывания защиты привязан к состоянию сессии, а не к источнику запросов (IP-адресу, учётной записи или глобальному счётчику неудачных попыток). Сброс сессии полностью нейтрализует эскалацию CAPTCHA. Сведения о значении CVSS в записи CVE не указаны, однако характер уязвимости позволяет отнести её к высокой степени риска для систем, чья панель администратора доступна из интернета.Что делать
Основная рекомендация — обновить pH7Builder до версии, выпущенной после 19.2.0, как только разработчик опубликует соответствующий патч, и отслеживать официальные релизы проекта. Если обновление пока недоступно, следует применить компенсирующие меры:- Ограничить доступ к административному входу по IP-адресам или через VPN, не публикуя панель в открытом интернете.
- Настроить на уровне веб-сервера или WAF ограничение частоты запросов (rate limiting) к скрипту входа администратора с блокировкой после нескольких неудачных попыток.
- Внедрить серверную CAPTCHA или второй фактор аутентификации, не зависящие от состояния PHP-сессии.
- Включить мониторинг и оповещения о всплесках неудачных попыток входа, чтобы своевременно выявлять перебор.
- Использовать сложные уникальные пароли администраторов и регулярно их менять.
Источник: CVE Project (cvelistV5)
