CVE-2018-7600
Drupal Drupal Core
2021-11-03
Drupal Core contains a remote code execution vulnerability that could allow an attacker to exploit multiple attack vectors on a Drupal site, resulting in complete site compromise.
Технический анализ и план устранения
Суть уязвимости
Уязвимость (также известная как Drupalgeddon 2) позволяет удаленному злоумышленнику выполнить произвольный код на сервере без аутентификации. Это достигается за счет некорректной обработки данных в форме, что приводит к удаленному выполнению кода (RCE). Атака возможна через публичные формы на сайте (например, форму регистрации пользователя, сброса пароля или оставления комментария).
Как исправить
Необходимо немедленно обновить ядро Drupal до защищенной версии. Уязвимость затрагивает Drupal 8.x до 8.3.9, 8.4.x до 8.4.6 и 8.5.x до 8.5.1, а также Drupal 7.x до 7.58.
-
Определите текущую версию Drupal:
bash drush status | grep "Drupal version"Или проверьте файлCHANGELOG.txtв корне сайта. -
Обновите ядро Drupal:
- Для Drupal 7.x: Обновитесь до версии 7.58 или выше.
- Для Drupal 8.x: Обновитесь до версии 8.3.9, 8.4.6 или 8.5.1 (в зависимости от вашей ветки) или выше.
Пример для Debian/Ubuntu (если Drupal установлен из репозитория):
bash sudo apt update sudo apt install drupalРекомендуемый способ — обновление вручную: * Сделайте полную резервную копию сайта (файлы и база данных). * Скачайте последнюю безопасную версию с официального сайта Drupal. * Замените файлы ядра (папкиcore/иvendor/, файлы*.phpв корне), сохранив папкиsites/иmodules/contrib/. * Выполните обновление базы данных через веб-интерфейс (/update.php) или Drush:bash drush updb drush cr
Временное решение
Если немедленное обновление невозможно, примените следующие меры:
- Установите модуль-заглушку: Сообщество Drupal выпустило модуль, который закрывает уязвимость для Drupal 7 и 8. Скачайте и установите модуль SA-CORE-2018-002 с официальной страницы.
- Настройте WAF (Web Application Firewall):
- Для ModSecurity (Apache): Добавьте правило, блокирующее запросы, содержащие в теле или заголовках подозрительные конструкции, связанные с
#и массивами. - Для Nginx + ModSecurity или облачного WAF (Cloudflare, AWS WAF): Активируйте набор правил для защиты от RCE и SQL-инъекций.
- Для ModSecurity (Apache): Добавьте правило, блокирующее запросы, содержащие в теле или заголовках подозрительные конструкции, связанные с
- Ограничьте доступ: На уровне веб-сервера (
.htaccessдля Apache или конфигlocationдля Nginx) временно ограничьте доступ к критическим путям, таким как/user/register,/user/passwordи/node/*/edit, разрешив его только с доверенных IP-адресов. Пример для Nginx:nginx location ~ ^/(user/register|user/password) { allow 192.168.1.0/24; # Ваша доверенная сеть allow 10.0.0.1; # Ваш IP deny all; }