CVE-2021-40438
Apache Apache
2021-12-01
A crafted request uri-path can cause mod_proxy to forward the request to an origin server choosen by the remote user. This issue affects Apache HTTP Server 2.4.48 and earlier.
Технический анализ и план устранения
Суть уязвимости
Уязвимость в модуле mod_proxy позволяет злоумышленнику, отправляя специально сформированный запрос с определенным URI-путем, заставить сервер перенаправить (проксировать) этот запрос на сервер, который выберет сам атакующий. Это может привести к:
* SSRF (Server-Side Request Forgery): Атакующий может заставить ваш сервер делать запросы к внутренним ресурсам (например, к метаданным облачных инстансов или к другим внутренним системам), которые извне недоступны.
* Обход политик безопасности: Запросы будут исходить от доверенного прокси-сервера, что может позволить обойти некоторые фильтры или контроля доступа.
Временное решение
Если немедленное обновление невозможно, примите следующие меры:
-
Ограничьте использование
mod_proxy:- Если проксирование не требуется, полностью отключите модуль
mod_proxyи связанные с ним (mod_proxy_http,mod_proxy_connectи т.д.). - В конфигурации виртуального хоста (
<VirtualHost>) или в основном конфиге (httpd.conf) явно запретите проксирование для всех путей, кроме необходимых.
- Если проксирование не требуется, полностью отключите модуль
-
Настройте строгие правила
ProxyPass:- Никогда не используйте шаблоны
ProxyPassс широким совпадением (например,ProxyPass "/"). Всегда указывайте конкретные префиксы путей. - Используйте директиву
ProxyPassс флагом!, чтобы явно запретить проксирование для определенных путей.
Пример безопасной конфигурации: ```apache
Запрещаем проксирование по умолчанию для всего
ProxyRequests Off ProxyPass /private !
Разрешаем проксирование только для конкретного, известного пути
ProxyPass /trusted-app/ http://backend-server:8080/ ProxyPassReverse /trusted-app/ http://backend-server:8080/ ```
- Никогда не используйте шаблоны
-
Используйте WAF (Web Application Firewall):
- Настройте правила в имеющемся WAF (например, ModSecurity) для блокировки запросов, содержащих подозрительные последовательности в URI, которые могут эксплуатировать эту уязвимость (например, множественные слэши, управляющие символы).
Как исправить
Уязвимость устранена в Apache HTTP Server версии 2.4.49 и выше. Необходимо обновить сервер до этой или более новой версии.
Для систем на базе Debian/Ubuntu:
sudo apt update
sudo apt install apache2
# Убедитесь, что установленная версия не ниже 2.4.49
apache2 -v
Для систем на базе RHEL/CentOS/Rocky Linux/AlmaLinux (используя репозитории EPEL или Software Collections):
# Для систем с httpd из базовых репозиториев
sudo yum update httpd
# или
sudo dnf update httpd
# Проверьте версию
httpd -v
Для Windows: * Скачайте и установите последнюю бинарную сборку Apache 2.4.49+ с официального сайта: https://httpd.apache.org/download.cgi * Замените файлы в существующей установке или выполните чистую установку новой версии, перенеся конфигурацию.
После обновления обязательно перезапустите сервер:
# Для systemd
sudo systemctl restart apache2 # Debian/Ubuntu
sudo systemctl restart httpd # RHEL/CentOS
# Или с помощью service
sudo service apache2 restart