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.

  1. Определите текущую версию Drupal: bash drush status | grep "Drupal version" Или проверьте файл CHANGELOG.txt в корне сайта.

  2. Обновите ядро 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

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

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

  1. Установите модуль-заглушку: Сообщество Drupal выпустило модуль, который закрывает уязвимость для Drupal 7 и 8. Скачайте и установите модуль SA-CORE-2018-002 с официальной страницы.
  2. Настройте WAF (Web Application Firewall):
    • Для ModSecurity (Apache): Добавьте правило, блокирующее запросы, содержащие в теле или заголовках подозрительные конструкции, связанные с # и массивами.
    • Для Nginx + ModSecurity или облачного WAF (Cloudflare, AWS WAF): Активируйте набор правил для защиты от RCE и SQL-инъекций.
  3. Ограничьте доступ: На уровне веб-сервера (.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; }