CVE-2018-7602

Drupal Core

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

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

2022-04-13

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

A remote code execution vulnerability exists within multiple subsystems of Drupal that can allow attackers to exploit multiple attack vectors on a Drupal site.

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

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

Уязвимость (Drupalgeddon 2) позволяет удаленному злоумышленнику выполнить произвольный PHP-код на сервере без аутентификации. Атака возможна через специально сформированные HTTP-запросы, которые эксплуатируют недостатки санитизации входных данных в подсистемах маршрутизации и форм.

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

Немедленно обновите ядро Drupal до защищенной версии. Конкретная версия зависит от вашей текущей ветки:

  • Для Drupal 8.x: обновитесь до версии 8.5.3 или выше.
  • Для Drupal 7.x: обновитесь до версии 7.58 или выше.

Команда для обновления через Composer (рекомендуемый способ для Drupal 8/9/10):

# Перейдите в корневую директорию вашего сайта Drupal
cd /path/to/your/drupal
# Обновите ядро drupal/core и зависимости
composer update drupal/core --with-dependencies
# Импортируйте обновленную конфигурацию и очистите кеш
drush updb -y
drush cr

Команда для обновления через Drush (Drupal 7):

# Обновите ядро Drupal
drush pm-update drupal

После обновления обязательно проверьте версию ядра.

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

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

  1. Настройка WAF (Web Application Firewall):

    • Добавьте правило, блокирующее запросы, содержащие в теле или параметрах (POST и GET) строки, связанные с эксплойтом, например: drupal-entity в связке с # и +.
    • Пример правила для ModSecurity (CRS): SecRule ARGS "@contains drupal-entity" "id:10001,phase:2,deny,msg:'Potential CVE-2018-7602 Exploit Attempt'"
  2. Ограничение доступа:

    • Если возможно, ограничьте доступ к сайту по IP-адресу на уровне веб-сервера (Nginx/Apache) или файрвола до момента установки патча.
    • Пример для Nginx: nginx location / { allow 192.168.1.0/24; # Ваша доверенная сеть allow 10.0.0.1; # Ваш IP deny all; }

Внимание: Временные решения лишь усложняют эксплуатацию, но не устраняют уязвимость. Обновление — единственный надежный способ защиты.