CVE-2023-28432
MinIO MinIO
2023-04-21
MinIO contains a vulnerability in a cluster deployment where MinIO returns all environment variables, which allows for information disclosure.
Технический анализ и план устранения
Суть уязвимости
CVE-2023-28432 — это критическая уязвимость раскрытия информации (Information Disclosure) в объектном хранилище MinIO, затрагивающая кластерные развертывания.
Проблема заключается в некорректной работе API-эндпоинта bootstrap, который предназначен для обмена конфигурационными данными между узлами кластера. Из-за отсутствия должной фильтрации, при обращении к этому эндпоинту MinIO возвращает значения всех переменных окружения сервера. Это приводит к утечке конфиденциальных данных, включая:
* MINIO_ROOT_USER и MINIO_ROOT_PASSWORD (логин и пароль администратора).
* Ключи доступа к облачным сервисам (AWS Access Key, Secret Key).
* Параметры подключения к базам данных и LDAP.
* Токены аутентификации и другие секреты, переданные через ENV-переменные.
Уязвимость может быть эксплуатирована удаленно без аутентификации, что позволяет злоумышленнику получить полный контроль над хранилищем и связанной инфраструктурой.
Как исправить
Единственным надежным способом устранения уязвимости является обновление MinIO до версии, в которой данная проблема исправлена (релиз RELEASE.2023-03-20T20-16-18Z и выше).
- Проверьте текущую версию MinIO:
minio --version
- Если вы используете бинарный файл, выполните встроенную команду обновления:
minio admin update
-
Если обновление через CLI недоступно (например, нет доступа к интернету), скачайте актуальный бинарный файл с официального сайта и замените старый файл.
-
Для Docker-инсталляций обновите тег образа в
docker-compose.yamlили в команде запуска до актуального:
docker pull minio/minio:latest
-
После обновления обязательно перезапустите все узлы кластера.
-
Важно: Поскольку учетные данные могли быть скомпрометированы до момента обновления, необходимо немедленно сменить пароль администратора (
MINIO_ROOT_PASSWORD) и все секретные ключи, которые передавались через переменные окружения.
Временные меры
Если немедленное обновление невозможно, рекомендуется принять следующие меры для снижения риска:
-
Ограничьте доступ к API MinIO на сетевом уровне (Firewall/Security Groups), разрешив подключения только с доверенных IP-адресов администраторов и клиентских приложений.
-
Настройте Reverse Proxy (Nginx, HAProxy) перед MinIO и заблокируйте внешние запросы к системным эндпоинтам, содержащим
/minio/bootstrap.
Пример для Nginx:
location /minio/bootstrap {
deny all;
return 403;
}
- Убедитесь, что узлы кластера взаимодействуют друг с другом через изолированную внутреннюю сеть, недоступную из публичного интернета.