CVE-2020-13671

Drupal Drupal core

ВЕРОЯТНОСТЬ 4.5%

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

2022-01-18

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

Improper sanitization in the extension file names is present in Drupal core.

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

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

Уязвимость (CVE-2020-13671) в Drupal Core связана с недостаточной санитизацией (очисткой) имен файлов расширений. Злоумышленник может использовать специально сформированные имена файлов для обхода системных ограничений и выполнения произвольного PHP-кода на сервере. Это достигается путем загрузки файла с определенным именем, которое интерпретируется сервером как исполняемый скрипт.

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

Необходимо обновить ядро Drupal до защищенной версии. Уязвимость затрагивает версии Drupal 8.8.x до 8.8.8 и Drupal 8.9.x до 8.9.1, а также Drupal 9.0.

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

  2. Обновите Drupal core:

    • Если у вас Drupal 8.8.x, обновитесь до версии 8.8.8 или выше.
    • Если у вас Drupal 8.9.x, обновитесь до версии 8.9.1 или выше.
    • Если у вас Drupal 9.0, обновитесь до версии 9.0.1 или выше.

    Используйте Composer для обновления (рекомендуемый способ): ```bash

    Для Drupal 8.8.x

    composer require 'drupal/core-recommended:^8.8.8' --update-with-dependencies

    Для Drupal 8.9.x

    composer require 'drupal/core-recommended:^8.9.1' --update-with-dependencies

    Для Drupal 9.0.x

    composer require 'drupal/core-recommended:^9.0.1' --update-with-dependencies ```

  3. Очистите кеш Drupal после обновления: bash drush cr

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

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

  1. Ограничьте загрузку файлов:

    • Временно отключите все модули и формы, позволяющие анонимным или недоверенным пользователям загружать файлы.
    • В настройках модуля File (/admin/config/media/file-system) убедитесь, что для "Тemporary directory" задана защищенная директория вне корневой веб-папки.
  2. Настройте WAF (Web Application Firewall):

    • Добавьте правило, блокирующее HTTP-запросы, содержащие в именах файлов или параметрах шаблоны, характерные для эксплуатации этой уязвимости (например, последовательности, обходящие проверку расширений .php, .phtml, .phar).
    • Пример правила для ModSecurity (CRS): SecRule FILES_NAMES "@rx \.(php\d*|phtml|phar)(\.|$)" \ "id:10013671,\ phase:2,\ deny,\ status:403,\ msg:'CVE-2020-13671 - Potential Drupal file upload exploit attempt'"
  3. Усильте мониторинг:

    • Включите детальное логирование попыток загрузки файлов в Drupal и на уровне веб-сервера (Apache/Nginx).
    • Настройте алерты на подозрительную активность, связанную с запросами к путям загрузки файлов (например, /system/files/).