В популярных форумах на vBulletin обнаружены дыры
02/06/25
Речь идёт сразу о двух критических уязвимостях, получивших идентификаторы CVE-2025-48827 и CVE-2025-48828 . Первая из них уже используется в реальных атаках, а вторая позволяет довести цепочку до полноценного захвата контроля над системой, пишут в Securitylab.
Уязвимости были выявлены 23 мая 2025 года независимым исследователем Эджидио Романо (EgiX), который опубликовал подробный технический разбор с описанием механизмов эксплуатации. В центре всей конструкции — изменения в поведении PHP начиная с версии 8.1 и ошибки в логике работы шаблонизатора vBulletin. Вместе они дают неожиданный и опасный результат: удалённый, неаутентифицированный запуск произвольных команд на сервере.
Первая проблема связана с неправильным использованием Reflection API. Этот механизм позволяет вызывать защищённые методы объектов, и раньше требовал явного обхода ограничений доступа. Однако в PHP 8.1 всё изменилось: определённые вызовы с помощью отражения больше не требуют принудительного открытия доступа. И если в коде это не было учтено — метод можно вызвать напрямую, без каких-либо обходных манипуляций.
В vBulletin таких вызовов достаточно. Например, через уязвимый метод replaceAdTemplate можно внедрить специально подготовленный шаблон прямо из URL-запроса. CVE-2025-48828 же позволяет обойти фильтрацию небезопасных функций за счёт использования PHP-хаков, вроде вызовов переменных как функций (${'assert'} и т. д.). Таким образом, система принимает вредоносный код как допустимый.
Комбинация этих двух ошибок превращается в мощный инструмент: достаточно одного запроса, чтобы внедрить произвольную команду и запустить её на сервере от имени веб-пользователя. В большинстве случаев это www-data на Linux, что открывает путь к скачиванию бэкдоров, запуску скриптов и углублению в систему.
Через три дня после публикации Романо, 26 мая, другой исследователь — Райан Дьюхерст — отчитался о попытках использования. Он проанализировал логи своих honeypot-серверов и обнаружил подозрительные запросы к уязвимому endpoint'у /ajax/api/ad/replaceAdTemplate. Все признаки указывали на сканирование и попытки внедрения зловредного PHP.