CVE-2019-16759

vBulletin vBulletin

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2021-11-03

Официальное описание

The PHP module within vBulletin contains an unspecified vulnerability that allows for remote code execution via the widgetConfig[code] parameter in an ajax/render/widget_php routestring request.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость (CVE-2019-16759) в vBulletin позволяет удаленному злоумышленнику выполнить произвольный PHP-код на сервере без аутентификации. Атака осуществляется путем отправки специально сформированного POST-запроса к маршруту /ajax/render/widget_php, где в параметре widgetConfig[code] передается вредоносный код.

Как исправить

Основной метод — обновление vBulletin до версии, в которой уязвимость устранена.

  1. Обновите vBulletin до одной из следующих патченных версий:

    • vBulletin 5.5.4
    • vBulletin 5.5.3 Patch Level 1
    • Любая более поздняя версия из ветки 5.x.x
  2. Процесс обновления:

    • Скачайте последнюю версию с официального сайта vBulletin.
    • Создайте полную резервную копию базы данных и файлов форума.
    • Загрузите новые файлы поверх существующей установки (кроме файла config.php.bkp и каталога core/includes/config.php).
    • Перейдите в панель администратора по адресу http://ВАШ_САЙТ/install/upgrade.php и следуйте инструкциям.

Временное решение

Если немедленное обновление невозможно, примените одно из следующих решений:

  1. На уровне веб-сервера (Apache): Добавьте правило в .htaccess для блокировки доступа к уязвимому маршруту. apache RewriteEngine On RewriteCond %{REQUEST_URI} ^/ajax/render/widget_php [NC] RewriteRule .* - [F,L]

  2. На уровне веб-сервера (Nginx): Добавьте правило в конфигурацию сайта. nginx location ~* ^/ajax/render/widget_php { deny all; return 403; }

  3. На уровне WAF (Web Application Firewall): Настройте правило для блокировки запросов, содержащих в теле POST параметр widgetConfig[code].

  4. Экстренная мера: Временно переименуйте или удалите файл /ajax/render/widget_php в корневой директории vBulletin. Внимание: это может нарушить функциональность виджетов PHP.