Versa Concerto Actuator Authentication Bypass Information Leak
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Resumo
Falha de autenticação (CWE-288) no Versa Concerto, plataforma de orquestração SD-WAN, causada por uma inconsistência na normalização de URLs entre o filtro de autenticação e o roteamento real das requisições no proxy Traefik. O bypass permite alcançar o endpoint interno do Spring Boot Actuator sem credenciais, expondo heap dumps e trace logs que podem conter tokens, segredos e dados de sessão. Está no catálogo KEV da CISA com exploração confirmada, e é a peça inicial de uma cadeia maior (descrita por pesquisadores da ProjectDiscovery) que pode escalar até RCE e fuga de container.
Detalhamento técnico
O Concerto é composto por múltiplos containers Docker — core-service, web-service e traefik — sendo o Traefik o ponto de entrada nas portas 80/443, roteando para os serviços Spring Boot internos. A classe AuthenticationFilter decide quais caminhos pulam autenticação usando um método getNormalizeURI() que decodifica a URL (URLDecoder.decode) e a normaliza antes de checar se ela contém '/actuator' ou termina em '/v1/ping' — caminhos que são deliberadamente deixados sem checagem de auth.
O problema é que essa decisão de 'pular autenticação' é tomada sobre a URL decodificada, mas a URL efetivamente processada pelos controllers e pelo roteamento downstream não passa pela mesma decodificação. Isso cria uma condição do tipo Time-of-Check to Time-of-Use (TOCTOU): um atacante constrói uma URL com codificação (ex.: sequências %2f, uso de ';') que, decodificada, parece um path de administração normal, mas que na checagem de autenticação é interpretada como um path isento (contendo '/actuator' ou '/v1/ping'), enquanto o restante da pilha a trata de forma diferente.
O impacto direto dessa CVE é o acesso ao endpoint interno do Spring Boot Actuator — normalmente não deveria estar acessível externamente através do Traefik. Actuator expõe, entre outras coisas, /heapdump (dump completo da memória da JVM, incluindo credenciais, tokens JWT, segredos de configuração em memória) e /trace (histórico de requisições HTTP, que pode conter headers de autenticação e dados sensíveis de sessão de outros usuários). Não há execução de código nesta CVE isoladamente — o impacto é confidencialidade (SC:H) com algum efeito colateral de integridade (SI:L), refletido no vetor CVSS 4.0.
Como é explorada
O vetor é de rede, sem autenticação e sem interação do usuário (AV:N/AT:N/PR:N/UI:N no CVSS 4.0), o que torna a exploração trivial de automatizar contra qualquer instância exposta na internet. O atacante envia uma requisição HTTP manipulada ao Traefik explorando a divergência de decodificação de URL para chegar ao endpoint Actuator interno, que fica acessível como se fosse um path isento de autenticação.
A ProjectDiscovery documentou publicamente o mecanismo do bypass (incluindo um exemplo de URL manipulada usando ';' e codificação percentual) e publicou template Nuclei, o que baixa consideravelmente a barreira de exploração automatizada e explica a presença no KEV da CISA com exploração confirmada em campo. Isoladamente, essa CVE entrega vazamento de dados via heap dump/trace logs; os mesmos pesquisadores mostraram que o bypass de autenticação pode ser encadeado com um endpoint de upload de pacotes vulnerável a escrita arbitrária de arquivo (web-service) para alcançar RCE e, a partir daí, fuga do container via mapeamentos de volume mal configurados — mas essa cadeia completa está fora do escopo estrito desta CVE.
A CISA definiu prazo de correção (due date) até 2026-02-12 para agências federais dos EUA, o que reforça a avaliação de exploração ativa e risco elevado, independentemente de o CVSS numérico (9.2) capturar toda a extensão do impacto quando encadeado com as demais falhas relatadas pelos pesquisadores.
Versões
Como se proteger
O fornecedor publicou um boletim de segurança (link nas referências) com instruções de mitigação; o conteúdo detalhado desse boletim — incluindo eventual número de versão corrigida — não estava disponível no material consultado para esta página, então não é possível afirmar aqui uma versão fixa específica. Trate o boletim oficial da Versa como fonte primária para o número exato de build corrigida antes de declarar o ambiente remediado.
Como controle compensatório, restrinja o acesso ao endpoint '/actuator' e variantes codificadas dele na camada do proxy reverso (Traefik) e, se possível, na frente dele (firewall/WAF), bloqueando explicitamente qualquer path que contenha '/actuator' em qualquer forma de codificação (percent-encoding, ';', duplicação de barras) e não apenas a forma decodificada literal — o próprio bug é uma falha de normalização, então uma regra de bloqueio que só reconheça a string exata '/actuator' não resolve. Isolar o Actuator para escuta apenas em interface interna/loopback, sem exposição via Traefik externo, remove o vetor por completo, mas exige mudança de configuração de deployment que pode não ser suportada sem o patch do fornecedor.
Não funciona como mitigação: confiar apenas em autenticação de aplicação, já que o bypass ocorre antes da checagem de autorização ser aplicada de forma consistente. Também não é suficiente bloquear apenas a string literal 'actuator' sem tratar variantes de codificação de URL, dado que o mecanismo do bug é exatamente essa inconsistência de decodificação entre o filtro e o roteamento real.
Como detectar
Procure nos logs de acesso do Traefik/proxy reverso requisições externas para paths que resolvem para '/actuator' (incluindo suas subrotas como /actuator/heapdump e /actuator/trace) originadas de fora da rede interna esperada, especialmente variantes com codificação percentual, ponto-e-vírgula ou barras duplicadas na URL — a exemplo do padrão documentado publicamente (.../users/username/admin;%2fv1%2fping). A existência de um template Nuclei público para essa CVE significa que scanners automatizados de internet provavelmente já testaram ou testarão o padrão de requisição associado; correlacionar hits desse padrão com IPs de origem não pertencentes à administração legítima é um indicador forte de tentativa de exploração. Não há um único indicador infalível além disso, já que o tráfego malicioso pode ser disfarçado dentro de requisições HTTP legítimas em formato — a ausência de log detalhado de payload no nível de aplicação (e não apenas do proxy) limita a capacidade de detecção retroativa em muitos ambientes.