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 до версии, в которой уязвимость устранена.
-
Обновите vBulletin до одной из следующих патченных версий:
- vBulletin 5.5.4
- vBulletin 5.5.3 Patch Level 1
- Любая более поздняя версия из ветки 5.x.x
-
Процесс обновления:
- Скачайте последнюю версию с официального сайта vBulletin.
- Создайте полную резервную копию базы данных и файлов форума.
- Загрузите новые файлы поверх существующей установки (кроме файла
config.php.bkpи каталогаcore/includes/config.php). - Перейдите в панель администратора по адресу
http://ВАШ_САЙТ/install/upgrade.phpи следуйте инструкциям.
Временное решение
Если немедленное обновление невозможно, примените одно из следующих решений:
-
На уровне веб-сервера (Apache): Добавьте правило в
.htaccessдля блокировки доступа к уязвимому маршруту.apache RewriteEngine On RewriteCond %{REQUEST_URI} ^/ajax/render/widget_php [NC] RewriteRule .* - [F,L] -
На уровне веб-сервера (Nginx): Добавьте правило в конфигурацию сайта.
nginx location ~* ^/ajax/render/widget_php { deny all; return 403; } -
На уровне WAF (Web Application Firewall): Настройте правило для блокировки запросов, содержащих в теле POST параметр
widgetConfig[code]. -
Экстренная мера: Временно переименуйте или удалите файл
/ajax/render/widget_phpв корневой директории vBulletin. Внимание: это может нарушить функциональность виджетов PHP.