CVE-2021-39226

Grafana Labs Grafana

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-08-25

Официальное описание

Grafana contains an authentication bypass vulnerability that allows authenticated and unauthenticated users to view and delete all snapshot data, potentially resulting in complete snapshot data loss.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2021-39226 — это критическая уязвимость обхода аутентификации (Authentication Bypass) в Grafana. Проблема заключается в некорректной обработке путей в API-эндпоинтах снимков панелей (snapshots).

Уязвимость позволяет неавторизованным пользователям получать доступ к эндпоинтам /api/snapshots/:key и /api/snapshots-delete/:deleteKey. В результате злоумышленник может просматривать конфиденциальные данные, содержащиеся в снимках, а также удалять любые существующие снимки без прохождения проверки прав доступа. Это может привести к полной потере данных снимков и утечке чувствительной информации, отображаемой на дашбордах.

Как исправить

Основным и рекомендуемым способом устранения уязвимости является обновление Grafana до исправленной версии.

  1. Определите текущую версию Grafana:
grafana-server -v

  1. Обновите Grafana до одной из следующих версий (или выше):
  2. 8.1.6
  3. 7.5.11
  4. 6.7.6 (LTS)

  5. Для систем на базе Debian/Ubuntu:

sudo apt-get update
sudo apt-get install --only-upgrade grafana

  1. Для систем на базе RHEL/CentOS:
sudo yum update grafana

  1. Перезапустите службу Grafana:
sudo systemctl restart grafana-server

Временные меры

Если немедленное обновление невозможно, необходимо ограничить доступ к уязвимым эндпоинтам на уровне обратного прокси-сервера (Reverse Proxy), такого как Nginx или HAProxy.

  1. Пример конфигурации для Nginx (добавьте в блок server перед основной конфигурацией Grafana):
location ~* ^/api/snapshots(/.*|$) {
    return 403;
}

location ~* ^/api/snapshots-delete/.* {
    return 403;
}

  1. Если вы используете Grafana Cloud, никаких действий не требуется, так как исправление уже применено на стороне провайдера.

  2. В качестве дополнительной меры рекомендуется временно отключить функционал создания снимков в конфигурационном файле grafana.ini:

[snapshots]
external_enabled = false