← volver
CVE-2023-28432highbajo ataqueCWE-200

Minio Information Disclosure in Cluster Deployment

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 7.5epss 84%
de la publicación al arma1 días
Publicada en NVD22 mar
1ª PoC+1d
metasploit20 mar
CISA KEV+30d
probabilidad de explotación
84%top 1% de las CVE
explotación observada
CISA + VulnCheck
33 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2023-05-12

Apply updates per vendor instructions.

Resumen

Em implantações MinIO distribuídas (cluster), um endpoint interno de bootstrap devolve todas as variáveis de ambiente prefixadas com MINIO_ — incluindo MINIO_SECRET_KEY e MINIO_ROOT_PASSWORD — sem exigir autenticação. Qualquer atacante com acesso de rede a esse endpoint obtém as credenciais root do storage, o que na prática equivale a comprometimento total dos dados armazenados. O CVSS 7.5 (apenas C:H) já reflete bem o impacto: é um roubo de credencial limpo, sem necessidade de interação do usuário ou privilégio prévio, mas restrito a deployments em cluster e, na prática, a cenários onde esse endpoint interno acabou exposto para fora da rede de internode.

Detalle técnico

A falha está em minio/cmd/bootstrap-peer-server.go, no handler VerifyHandler do servidor REST de bootstrap (a API interna que os nós de um cluster MinIO usam para se verificarem entre si na inicialização). O handler chama getServerSystemCfg(), que executa env.List("MINIO_") para coletar todas as variáveis de ambiente com esse prefixo, monta um mapa envValues excluindo apenas as chaves presentes em uma lista de exclusão (skipEnvs), e serializa isso como JSON na resposta HTTP dentro da struct ServerSystemConfig (campo MinioEnv), junto com os endpoints do cluster.

O problema é duplo: primeiro, o endpoint de verificação de bootstrap não validava adequadamente o token interno de comunicação entre nós antes de responder — não havia checagem de autenticação suficiente para impedir que uma requisição externa recebesse a configuração completa. Segundo, a lista de exclusão (skipEnvs) não cobria as variáveis sensíveis por padrão, então MINIO_SECRET_KEY e MINIO_ROOT_PASSWORD (e potencialmente outras credenciais configuradas via env) iam para a resposta em texto claro. O CISA KEV classifica isso como CWE-200 (exposição de informação sensível a atores não autorizados); a advisory do fornecedor não atribui CWE.

O atacante não controla nenhum parâmetro de entrada complexo — o vetor é simplesmente conseguir fazer uma requisição HTTP ao endpoint de bootstrap do MinIO. O que ele ganha é a leitura integral do estado de configuração do nó.

Cómo se explota

O pré-requisito real é acesso de rede ao endpoint REST de bootstrap de um nó MinIO operando em modo distribuído/cluster (deployments standalone de nó único não são afetados, segundo a descrição do fornecedor, que fala explicitamente em 'cluster deployment' e 'distributed deployment'). Esse endpoint foi projetado para tráfego internode — ou seja, comunicação entre os próprios servidores do cluster — e não deveria estar acessível pela internet. A exploração massiva relatada ocorreu justamente em instâncias onde essa porta/endpoint interno ficou exposto publicamente, geralmente por erro de configuração de rede ou containers publicados sem segmentação adequada.

Não há necessidade de autenticação, interação do usuário ou conhecimento prévio de credenciais — é uma requisição direta ao endpoint vulnerável, que responde com o JSON contendo as variáveis de ambiente. A partir daí, o atacante tem MINIO_ROOT_PASSWORD/MINIO_SECRET_KEY e pode se autenticar normalmente na API S3 do MinIO com privilégio de administrador, lendo, alterando ou apagando qualquer objeto armazenado.

Há exploração ativa confirmada: a CVE está no catálogo KEV da CISA (adicionada em 21/04/2023, prazo de correção 12/05/2023) e pesquisadores da GreyNoise relataram, ainda em março de 2023, exploração em tempo real na internet, inclusive um caso em que código do SDK de browser do ChatGPT usava uma versão vulnerável do MinIO. Existem módulo Metasploit, template Nuclei e PoC pública, o que baixou bastante a barreira técnica para exploração automatizada em massa via scanning.

Versiones

Afectadas
Segundo a descrição oficial do fornecedor, deployments em cluster desde RELEASE.2019-12-17T23-16-33Z até versões anteriores a RELEASE.2023-03-20T20-16-18Z. O metadado da security advisory do GitHub (GHSA-6xvq-wj2x-3h3q) registra o campo 'Affected versions' como RELEASE.2021-08-31T05-46-54Z, uma data mais recente que a citada na descrição oficial — as duas fontes do próprio fornecedor divergem no início exato do intervalo; a data mais antiga (2019-12-17) é a que consta na descrição pública da CVE.
Corregidas en
RELEASE.2023-03-20T20-16-18Z, que inclui o patch do commit 3b5dbf90468b874e99253d241d16d175c2454077 ('allow bootstrapping to validate internode tokens', PR #16853).

Cómo protegerse

A correção do fornecedor é migrar para RELEASE.2023-03-20T20-16-18Z ou posterior, que corrige o handler de bootstrap para validar tokens internode antes de responder (commit 3b5dbf9..., PR #16853, 'allow bootstrapping to validate internode tokens'). Essa mesma release também trouxe correções para duas outras falhas de escalonamento de privilégio (Linux/macOS e Windows), então a atualização resolve mais de um problema de uma vez.

O próprio advisory do fornecedor (GHSA-6xvq-wj2x-3h3q) afirma explicitamente que 'não há workarounds conhecidos' — não existe flag de configuração ou paliativo oficial. O controle compensatório real, na ausência de atualização imediata, é de rede: garantir que a porta/API interna de bootstrap do cluster MinIO não esteja acessível fora da malha de comunicação entre os próprios nós (bloqueio por firewall/security group, segmentação, sem exposição para a internet). Isso reduz a superfície de ataque mas não corrige a vulnerabilidade em si — qualquer host com acesso à rede interna do cluster continua podendo explorar a falha antes do patch.

Rotacionar MINIO_SECRET_KEY/MINIO_ROOT_PASSWORD após a atualização é recomendável se houver suspeita de exposição anterior, já que a credencial pode já ter sido capturada antes do patch ser aplicado.

Cómo detectar

A GreyNoise mantém uma tag dedicada ('minio-information-disclosure-attempt') que rastreia IPs escaneando e explorando ativamente essa falha na internet — consultar esse feed indica se o endereço de origem de uma tentativa já foi visto fazendo scanning massivo desse endpoint. Em logs próprios, o sinal a procurar é requisições HTTP ao endpoint REST de bootstrap do MinIO (rota interna de verificação/bootstrap entre nós) originadas de IPs fora da rede interna do cluster — qualquer acesso a esse endpoint que não venha de outro nó legítimo do próprio cluster é suspeito. Não há um padrão de payload distintivo a procurar, já que a exploração é uma simples requisição GET/POST sem corpo malicioso; a anomalia está inteiramente na origem e no destino da conexão, não no conteúdo da requisição.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
Minio is a Multi-Cloud Object Storage framework. In a cluster deployment starting with RELEASE.2019-12-17T23-16-33Z and prior to RELEASE.2023-03-20T20-16-18Z, MinIO returns all environment variables, including `MINIO_SECRET_KEY` and `MINIO_ROOT_PASSWORD`, resulting in information disclosure. All users of distributed deployment are impacted. All users are advised to upgrade to RELEASE.2023-03-20T20-16-18Z.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Productos afectados
minio · minio
PoCs públicas encontradas33
githubgithub.com/MzzdToT/CVE-2023-2843237githubgithub.com/Mr-xn/CVE-2023-2843234githubgithub.com/acheiii/CVE-2023-2843215githubgithub.com/Chocapikk/CVE-2023-2843211githubgithub.com/gobysec/CVE-2023-2843210githubgithub.com/Cuerz/CVE-2023-2843210githubgithub.com/Okaytc/minio_unauth_check7githubgithub.com/yTxZx/CVE-2023-284323githubgithub.com/BitWiz4rd/CVE-2023-284322githubgithub.com/steponeerror/Cve-2023-28432-2githubgithub.com/C1ph3rX13/CVE-2023-284321githubgithub.com/LHXHL/Minio-CVE-2023-284321githubgithub.com/TaroballzChen/CVE-2023-28432-metasploit-scanner1githubgithub.com/unam4/CVE-2023-28432-minio_update_rce1githubgithub.com/NET-Flowers/CVE-2023-284320githubgithub.com/CHINA-china/MinIO_CVE-2023-28432_EXP0githubgithub.com/h0ng10/CVE-2023-28432_docker0vulncheckvulncheck.com/xdb/135cba389f2dno verificadovulncheckvulncheck.com/xdb/265e34c2d00bno verificadovulncheckvulncheck.com/xdb/b03d61e273cdno verificadovulncheckvulncheck.com/xdb/2bce5ce3653dno verificadovulncheckvulncheck.com/xdb/8a90a12dbb9dno verificadovulncheckvulncheck.com/xdb/88c33874c8a8no verificadovulncheckvulncheck.com/xdb/b297acbd5c68no verificadovulncheckvulncheck.com/xdb/ddf25a501579no verificadovulncheckvulncheck.com/xdb/362042b30e53no verificadovulncheckvulncheck.com/xdb/01d4efe0d336no verificadovulncheckvulncheck.com/xdb/f8d3bffd0b5fno verificadovulncheckvulncheck.com/xdb/b5a191fe1548no verificadovulncheckvulncheck.com/xdb/ce019ea1d113no verificadovulncheckvulncheck.com/xdb/3fa0cfa7912ano verificadovulncheckvulncheck.com/xdb/2f2181c8c371no verificadovulncheckvulncheck.com/xdb/c098a3a1e4d1no verificado
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.