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, корпоративный сегмент) с помощью межсетевого экрана.