На одном из самохостируемых форумов администратор утром увидел в логах странный POST-запрос к стандартному маршруту. Пользовательского аккаунта у атакующего не было, а сервер всё равно принял ввод так, будто это обычный запрос к шаблону. Через такой путь ошибка в движке форума может дойти до запуска PHP-кода на сервере.

Какую проблему решаем

Речь идёт не о редком сбое, а о типичной для старых веб-платформ истории: уязвимость уже закрыли, но часть сайтов продолжает работать на старой сборке. В случае vBulletin речь идёт о проблеме в шаблонах, где внешний параметр попадает в вычисление выражения и в итоге доходит до eval().

Для владельца форума это означает простой риск: любой публичный маршрут на не обновлённом сервере может стать точкой входа. Если форум открыт из интернета, атакующему не нужен вход в админку и не нужен чужой аккаунт.

Что подготовить

Сначала соберите базу: точную версию vBulletin, список серверов, где она установлена, и время последнего обновления. Без этого легко пропустить старую копию на резервном хосте или тестовом домене.

Ещё понадобятся доступ к журналам веб-сервера и понимание, кто отвечает за обновление площадки. Если форум работает на внешнем хостинге, запросите у провайдера подтверждение, что патч уже стоит.

Если вы хотите дополнительно снизить утечки метаданных при работе через открытые сети, уместно заранее подготовить защиту соединения для поездок и коворкингов. Это не чинит уязвимость форума, но помогает не светить трафик и служебные данные в чужой сети.

Пошаговые действия

1. Проверьте версию

Сверьте релиз форума с тем, что уже закрывал производитель. В источнике фигурируют vBulletin 6.2.1 и более ранние сборки из ветки 6.2.1, а также 6.1.6 и более ранние релизы из ветки 6.1.6.

2. Поставьте обновление

Если форум самохостируемый, установите исправление для своей ветки или обновитесь до 6.2.2. По данным вендора, облачные площадки уже закрыли эту дыру.

3. Проверьте журналы

Особое внимание — POST-запросам к ajax/render/pagenav и необычно длинным значениям в параметре pagenumber. Исследователи связывают именно эту связку с публичным эксплойтом, а не с обычным поведением браузера.

4. Ищите постороннюю активность

После установки патча проверьте, не появлялись ли на сервере странные процессы, новые скрипты или команды, которых там быть не должно. Для старых форумных движков это особенно важно: штатные инструменты Windows под атакой часто становятся следующей ступенью, если злоумышленник уже закрепился на сервере или внутри сети.

5. Уберите лишнее с публичной стороны

Если форум давно не обновляли и он не нужен в текущем виде, ограничьте доступ по IP, перенесите панель управления за дополнительный контур или временно снимите сервис с интернета до завершения работ.

Как проверить себя

Хороший знак — версия форума совпадает с исправленной, а в логах нет подозрительных обращений к ajax/render/pagenav после даты установки патча. Ещё один признак порядка — у хостинга или у вашей команды есть подтверждение, что сборка 6.2.2 или актуальный патч действительно применены.

Плохой знак — вы не знаете точную версию платформы, не смотрели журналы и полагаетесь только на то, что «форум вроде бы работает». В этой ситуации любой открытый сервер остаётся кандидатом на компрометацию.

Что делать, если не получилось

Если обновление ломает плагины или тему оформления, не откладывайте исправление на неопределённый срок. Сначала поднимите тестовую копию, проверьте совместимость и только потом меняйте боевой сайт.

Если вы не можете быстро обновиться, временно ограничьте доступ, отключите лишние публичные маршруты и внимательно следите за логами. В истории с форумными движками промедление обычно дороже, чем неудобства от срочного окна на обслуживание.

Чек-лист на сейчас

  • Проверить точную версию vBulletin на всех серверах и копиях форума
  • Установить патч для своей ветки или перейти на 6.2.2
  • Просмотреть POST-запросы к ajax/render/pagenav в журналах
  • Искать необычные процессы, новые файлы и команды на сервере
  • Ограничить доступ к форуму, если обновление задерживается
  • Зафиксировать дату патча и сохранить подтверждение от хостинга или своей команды
Поделиться: