CVE-2023-28434

MinIO MinIO

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

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

2023-09-19

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

MinIO contains a security feature bypass vulnerability that allows an attacker to use crafted requests to bypass metadata bucket name checking and put an object into any bucket while processing `PostPolicyBucket` to conduct privilege escalation. To carry out this attack, the attacker requires credentials with `arn:aws:s3:::*` permission, as well as enabled Console API access.

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

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

CVE-2023-28434 представляет собой критическую уязвимость обхода механизмов безопасности (Security Feature Bypass) в MinIO. Проблема заключается в некорректной валидации имен бакетов при обработке запросов PostPolicyBucket.

Злоумышленник, обладающий учетными данными с правами доступа к любому ресурсу (arn:aws:s3:::*) и доступом к Console API, может отправить специально сформированный запрос. Это позволяет обойти проверку метаданных и записать объект в любой произвольный бакет в системе. Результатом эксплуатации является повышение привилегий (Privilege Escalation) до уровня администратора или получение полного контроля над данными во всех хранилищах.

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

Основным и единственным надежным способом устранения уязвимости является обновление MinIO до версии RELEASE.2023-03-20T20-16-18Z или выше.

1. Обновление бинарного файла (Linux) Если MinIO запущен как системная служба, выполните обновление через встроенную команду:

mc admin update alias

Или вручную замените бинарный файл:

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin/
systemctl restart minio

2. Обновление через Docker Если вы используете контейнеризацию, обновите тег образа в вашем docker-compose.yaml или команде запуска:

docker pull minio/minio:RELEASE.2023-03-20T20-16-18Z

Затем перезапустите контейнер:

docker-compose up -d

3. Проверка версии После обновления убедитесь, что установлена безопасная версия:

minio --version

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

Если немедленное обновление невозможно, примените следующие защитные меры для снижения риска эксплуатации:

1. Ограничение доступа к Console API Заблокируйте доступ к порту консоли MinIO (по умолчанию 9001) для всех внешних IP-адресов, оставив доступ только для доверенных административных сетей с помощью Firewall (iptables/ufw).

iptables -A INPUT -p tcp --dport 9001 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 9001 -j DROP

2. Пересмотр политик IAM Проверьте существующие политики и временно отзовите права arn:aws:s3:::* у пользователей, которым не требуется полный доступ ко всем ресурсам. Используйте принцип наименьших привилегий (Least Privilege), явно указывая конкретные имена бакетов в политиках.

3. Отключение Console API Если управление через веб-интерфейс не является критически важным, вы можете временно отключить консоль, не назначая ей порт при запуске сервера, или заблокировав соответствующий трафик на уровне Reverse Proxy (Nginx/HAProxy).