Servidores Vite expostos viram alvo: como evitar o vazamento de segredos na nuvem

DEVSECOPS E CLOUD SECURITY
Diagrama sobre exposição de servidores Vite e credenciais em ambientes cloud

Servidores de desenvolvimento Vite acessíveis pela Internet entraram na mira de uma operação automatizada que procura arquivos de ambiente, credenciais de nuvem e estados de infraestrutura como código. A atividade confirma tentativas de exploração; não confirma quantas organizações tiveram dados lidos nem se houve uso posterior das credenciais.

Uma ferramenta local colocada na borda da Internet

Vite é uma ferramenta de build e um servidor de desenvolvimento para aplicações Web. Durante o trabalho local, entrega módulos e atualiza a página por Hot Module Replacement. Esse comportamento melhora a produtividade, mas não foi concebido como camada endurecida para publicação na Internet.

Por padrão, o serviço fica no endereço local. O risco cresce com --host, server.host ou a publicação da porta do container. Também pode surgir por Service ou Ingress Kubernetes, reverse proxy, túnel de preview, regra cloud ou job de CI/CD que deixa o endpoint alcançável.

Ter Vite como dependência não torna a aplicação automaticamente vulnerável. A entrega dos artefatos de vite build, sem o dev server, não oferece o mesmo caminho. A exploração descrita exige servidor de desenvolvimento acessível e versão afetada.

Como a CVE-2026-39364 permite a leitura

A rota /@fs/ serve arquivos do sistema. Com server.fs.strict, server.fs.allow limita diretórios; server.fs.deny nega padrões sensíveis, como .env e certificados. A falha quebra essa segunda barreira em condições específicas.

Uma requisição HTTP sem autenticação pode apontar para arquivo dentro do escopo permitido e acrescentar ?raw, ?import&raw ou ?import&url&inline. Em versões vulneráveis, server.fs.deny não é aplicado como deveria e o arquivo pode voltar no corpo da resposta com status 200.

O advisory não descreve acesso irrestrito a qualquer caminho do host. Ainda assim, workspaces amplos, monorepos, volumes montados e diretórios compartilhados podem colocar segredos dentro do alcance do processo.

O que foi observado

A F5 Labs registrou 807 ataques agrupados por sessão e aproximadamente 32 mil eventos brutos. As requisições percorriam .env, perfis AWS e Azure, estados Terraform, configurações Serverless e variáveis de processo, além de variantes com travessia e codificação dupla.

Os scanners falsificavam User-Agents de crawlers e cabeçalhos como X-Forwarded-For. Esses sinais ajudam na triagem, mas são forjáveis. A conclusão sustentada é exploração observada e coleta direcionada, não uma contagem pública de vítimas ou tomadas de contas.

Ambientes e impactos

Previews, homologação, containers com 0.0.0.0, portas Docker publicadas, workspaces cloud e namespaces Kubernetes com Ingress merecem atenção. Em pipelines, um job pode iniciar o dev server para testes e expô-lo além do executor.

O impacto depende do que o processo lê. .env pode conter tokens e senhas; diretórios cloud podem guardar chaves; estados de infraestrutura revelam recursos e valores sensíveis. Um segredo válido e excessivamente privilegiado pode abrir repositórios, registries, pipelines ou recursos de nuvem.

Como detectar

O inventário deve procurar processos Vite, server.host, --host, portas publicadas e endpoints com /@vite/client. A porta 5173 é padrão, mas pode mudar se estiver ocupada; verificar apenas uma porta é insuficiente.

Em proxies, WAFs e balanceadores, consultas a /@fs/ com raw, import, url ou inline são prioritárias, sobretudo contra .env, .aws, .azure, terraform.tfstate ou /proc. Respostas 200 merecem investigação aprofundada.

Se houve exposição, é necessário correlacionar a janela com logs cloud, trilhas de identidade, cofres de segredos, registries, repositórios e CI/CD, buscando uso incompatível com origem, horário e ações esperadas.

Infográfico sobre servidores Vite expostos, CVE-2026-39364 e medidas de proteção

Mitigação imediata

  1. Atualizar. Para esta CVE, usar Vite 7.3.2, 8.0.5 ou posterior suportado; em linhas anteriores, aplicar o último patch ou migrar por causa de falhas relacionadas.
  2. Retirar o dev server da Internet. Revisar Docker, Kubernetes, túneis, proxies, security groups e publicação de portas; para acesso remoto indispensável, usar rede privada, autenticação forte e duração curta.
  3. Manter server.fs.strict, reduzir server.fs.allow e nunca definir server.allowedHosts como true. Esses controles não substituem o patch.
  4. Revogar ou rotacionar segredos possivelmente expostos, revisar privilégios e investigar uso. Preferir identidades de workload e credenciais temporárias.
  5. Bloquear manifests que executem vite dev em produção, testar serviços de preview, escanear secrets e expirar endpoints efêmeros automaticamente.

Prevenção no DevSecOps

Pipelines devem gerar artefatos estáticos e implantá-los em servidores adequados, não promover o dev server. Imagens de runtime não deveriam carregar ferramentas, caches e credenciais de build; volumes com segredos não devem ser montados em processos Web de desenvolvimento.

Políticas como código podem impedir LoadBalancers, Ingresses públicos e portas de desenvolvimento fora de namespaces autorizados. Corrigir a biblioteca sem remover o endpoint, ou remover o endpoint sem rotacionar uma chave já exposta, deixa o tratamento incompleto.

Conclusão

A campanha não transforma todo projeto frontend em incidente. Ela mostra como uma conveniência local pode virar rota de coleta ao cruzar a borda da rede. Alcance externo, versão vulnerável e segredos legíveis formam o risco real.

A decisão prática é direta: dev servers não devem ser serviços públicos. Atualizar, eliminar a exposição e revisar credenciais na mesma resposta reduz a chance de uma leitura local se converter em acesso indevido à nuvem ou à cadeia de desenvolvimento.

Sophos Workspace Protection — Mindsec

Referências

About mindsecblog 3767 Articles
Blog patrocinado por MindSec Segurança e Tecnologia da Informação Ltda.

Be the first to comment

Deixe sua opinião!