CVE-2021-43798
Grafana Labs Grafana
2025-10-09
Grafana contains a path traversal vulnerability that could allow access to local files.
Технический анализ и план устранения
Суть уязвимости
Уязвимость CVE-2021-43798 представляет собой классический Path Traversal (обход каталога), который приводит к локальному чтению файлов (Local File Inclusion, LFI).
Проблема кроется в механизме обработки статических файлов плагинов в Grafana. Злоумышленник без аутентификации может отправить специально сформированный HTTP-запрос к API плагинов, используя последовательности ../ (или их URL-кодированные варианты, такие как %2e%2e%2f), чтобы выйти за пределы разрешенной директории.
Вектор атаки:
Запрос вида /public/plugins/<любой-установленный-плагин>/../../../../../../../../etc/passwd позволяет прочитать произвольные файлы на сервере.
Последствия:
Атакующий может получить доступ к критичным файлам ОС (например, /etc/passwd), конфигурационным файлам самой Grafana (где хранятся пароли от баз данных в открытом виде) и файлу базы данных grafana.db, что ведет к полной компрометации системы мониторинга и связанных с ней инфраструктурных компонентов.
Уязвимые версии: Grafana с версии 8.0.0-beta1 по 8.3.0.
Как исправить
Единственный надежный способ устранения уязвимости — обновление Grafana до пропатченных версий: 8.3.1, 8.2.7, 8.1.8 или 8.0.7.
Для систем на базе Debian/Ubuntu выполните следующие команды:
apt-get update
apt-get install --only-upgrade grafana
systemctl restart grafana-server
Для систем на базе RHEL/CentOS/AlmaLinux выполните:
yum clean expire-cache
yum update grafana
systemctl restart grafana-server
Для Docker-контейнеров необходимо обновить тег образа в docker-compose.yml или скриптах запуска на актуальный (например, grafana/grafana:8.3.1) и пересоздать контейнер:
docker pull grafana/grafana:8.3.1
docker-compose up -d
Временные меры
Если оперативное обновление невозможно, необходимо немедленно применить компенсирующие меры (Virtual Patching).
- Настройка WAF / Reverse Proxy: Настройте ваш балансировщик нагрузки, Nginx, Apache или WAF на блокировку HTTP-запросов, содержащих последовательности обхода пути в URL.
- Блокируйте запросы, содержащие паттерны:
../,..%2f,%2e%2e/,%2e%2e%2f. - Пример правила для Nginx (добавить в блок
server):
location ~* (%2e%2e|/\.\.) {
return 403;
}
- После изменения конфигурации Nginx обязательно перезагрузите службу:
systemctl reload nginx
- Принцип наименьших привилегий:
Убедитесь, что процесс Grafana запущен от имени непривилегированного пользователя (например,
grafana), а не отroot. Это ограничит список файлов, которые злоумышленник сможет прочитать в случае успешной эксплуатации. - Изоляция сети: Ограничьте доступ к веб-интерфейсу Grafana только из доверенных сетей (VPN, корпоративный сегмент) с помощью межсетевого экрана.