CVE-2021-42013
Apache HTTP Server
2021-11-03
Apache HTTP Server contains a path traversal vulnerability that allows an attacker to perform remote code execution if files outside directories configured by Alias-like directives are not under default require all denied or if CGI scripts are enabled. This CVE ID resolves an incomplete patch for CVE-2021-41773.
Технический анализ и план устранения
Суть уязвимости
Атакующий может отправить специально сформированный HTTP-запрос с последовательностями %2e и %2f (кодированные символы . и /) для обхода проверок пути. Это позволяет получить доступ к файлам за пределами директорий, настроенных с помощью директив Alias, и, если включена обработка CGI-скриптов, выполнить произвольный код на сервере.
Как исправить
Обновите Apache HTTP Server до версии с исправлением: * Apache 2.4.50 или новее. * Apache 2.4.51 (рекомендуется, так как 2.4.50 содержала неполное исправление).
Для Debian/Ubuntu:
sudo apt update
sudo apt install apache2
Для RHEL/CentOS/AlmaLinux/Rocky Linux:
sudo yum update httpd
Для Windows: Установите последнюю версию Apache с официального сайта, заменив существующую установку.
Временное решение
Если немедленное обновление невозможно:
1. Отключите CGI-скрипты для всех уязвимых Alias-путей, если они не требуются.
apache
# В конфигурации виртуального хоста или .htaccess
<Directory "/path/to/aliased/dir">
Options -ExecCGI
RemoveHandler .cgi .pl .py .sh
</Directory>
2. Ужесточите политики доступа для всех Alias-путей, явно запретив доступ ко всему, кроме необходимого.
apache
<Directory "/path/to/aliased/dir">
Require all denied
</Directory>
<Directory "/path/to/aliased/dir/allowed-subdir">
Require all granted
</Directory>
3. Настройте WAF (например, ModSecurity) на блокировку запросов, содержащих последовательности %2e, %2f или их двойное кодирование в пути URL.