CVE-2020-13671
Drupal Drupal core
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.
-
Определите текущую версию Drupal:
bash drush status | grep "Drupal version"Или проверьте файлcore/lib/Drupal.php. -
Обновите 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 ```
-
Очистите кеш Drupal после обновления:
bash drush cr
Временное решение
Если немедленное обновление невозможно, примите следующие меры:
-
Ограничьте загрузку файлов:
- Временно отключите все модули и формы, позволяющие анонимным или недоверенным пользователям загружать файлы.
- В настройках модуля File (
/admin/config/media/file-system) убедитесь, что для "Тemporary directory" задана защищенная директория вне корневой веб-папки.
-
Настройте 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'"
- Добавьте правило, блокирующее HTTP-запросы, содержащие в именах файлов или параметрах шаблоны, характерные для эксплуатации этой уязвимости (например, последовательности, обходящие проверку расширений
-
Усильте мониторинг:
- Включите детальное логирование попыток загрузки файлов в Drupal и на уровне веб-сервера (Apache/Nginx).
- Настройте алерты на подозрительную активность, связанную с запросами к путям загрузки файлов (например,
/system/files/).