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
После обновления обязательно проверьте версию ядра.
Временное решение
Если немедленное обновление невозможно, примите следующие меры:
-
Настройка 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'"
- Добавьте правило, блокирующее запросы, содержащие в теле или параметрах (
-
Ограничение доступа:
- Если возможно, ограничьте доступ к сайту по IP-адресу на уровне веб-сервера (Nginx/Apache) или файрвола до момента установки патча.
- Пример для Nginx:
nginx location / { allow 192.168.1.0/24; # Ваша доверенная сеть allow 10.0.0.1; # Ваш IP deny all; }
Внимание: Временные решения лишь усложняют эксплуатацию, но не устраняют уязвимость. Обновление — единственный надежный способ защиты.