CVE-2021-41277

Metabase Metabase

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

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

2024-11-12

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

Metabase contains a local file inclusion vulnerability in the custom map support in the API to read GeoJSON formatted data.

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

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

CVE-2021-41277 — это критическая уязвимость класса Local File Inclusion (LFI), обнаруженная в API Metabase. Проблема связана с недостаточной фильтрацией входных данных в эндпоинтах, отвечающих за работу с пользовательскими картами (GeoJSON).

Уязвимость позволяет неавторизованному злоумышленнику отправить специально сформированный HTTP-запрос и прочитать произвольные файлы в файловой системе сервера, на котором запущен Metabase. Это может привести к утечке конфиденциальной информации, включая переменные окружения, конфигурационные файлы с паролями от баз данных и ключи шифрования.

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

Основным и рекомендуемым способом устранения уязвимости является обновление Metabase до актуальной безопасной версии. Уязвимость исправлена в версиях 0.40.5, 1.40.5, 0.41.1, 1.41.1 и выше.

Для Docker-инсталляций:

  1. Остановите текущий контейнер:
docker stop <container_id>

  1. Обновите образ до последней версии:
docker pull metabase/metabase:latest

  1. Запустите новый контейнер (убедитесь, что вы используете те же параметры монтирования томов для сохранения данных):
docker run -d -p 3000:3000 --name metabase metabase/metabase:latest

Для JAR-файла:

  1. Остановите процесс Metabase.
  2. Скачайте актуальную версию JAR-файла с официального сайта или GitHub.
  3. Замените старый файл новым и запустите сервис:
java -jar metabase.jar

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

Если немедленное обновление невозможно, необходимо ограничить эксплуатацию уязвимости на уровне сетевого периметра или прокси-сервера.

  1. Блокировка доступа к уязвимым эндпоинтам. Настройте Reverse Proxy (Nginx, Apache, HAProxy), чтобы запретить запросы, содержащие путь /api/geojson.

Пример для Nginx:

location /api/geojson {
    deny all;
    return 403;
}

  1. Ограничение сетевого доступа. Если Metabase используется только внутри компании, закройте доступ к нему из публичного интернета и разрешите подключения только с доверенных IP-адресов или через VPN.

  2. Изоляция среды. Убедитесь, что процесс Metabase запущен от имени пользователя с минимальными привилегиями в системе, чтобы ограничить список файлов, доступных для чтения в случае эксплуатации LFI.