Openfire administration console authentication bypass
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
Resumo
Falha de path traversal (CWE-22) no console administrativo do Openfire que permite a um atacante não autenticado acessar páginas do Admin Console reservadas a administradores, explorando o ambiente de setup mesmo em instalações já configuradas. É crítica porque não exige nenhuma credencial e o vetor é uma única requisição HTTP — está confirmada como explorada ativamente e consta no catálogo KEV da CISA.
Detalhamento técnico
O Openfire já tinha proteções contra path traversal, mas elas não cobriam uma forma não-padrão de URL-encoding para caracteres UTF-16 (o padrão %uXXXX, como %u002e para '.') que o servidor web embutido passou a suportar após uma atualização de dependência. As proteções de traversal do Openfire nunca foram atualizadas para reconhecer esse encoding alternativo, deixando uma lacuna entre o que o filtro de segurança bloqueava e o que o servidor web efetivamente interpretava.
O segundo componente da falha está no mecanismo de exclusão de autenticação do Openfire: a API define URLs que ficam fora da exigência de login (por exemplo, a própria página de login), e esse mecanismo aceita wildcards para casar padrões de URL de forma flexível. O ambiente de Setup — usado apenas durante a instalação inicial — tinha suas URLs excluídas de autenticação usando esse wildcard, e essa exclusão continuava ativa mesmo depois que o servidor já estava configurado e em produção.
A combinação das duas coisas é o problema: um atacante monta uma URL sob o prefixo /setup/ (que está na lista de exclusão de autenticação) usando o encoding %uXXXX para inserir sequências de '../' que o filtro de traversal não reconhece. O servidor decodifica o encoding, resolve o traversal, e entrega o conteúdo de páginas do Admin Console — como visualização de arquivos de log — sem jamais checar autenticação, porque a requisição bateu no padrão de URL isento de login.
O atacante não controla parâmetros de aplicação nem precisa de payload complexo: controla apenas a string da URL requisitada e o alvo dentro do Admin Console que quer alcançar via traversal.
Como é explorada
O vetor é uma requisição HTTP não autenticada contra a porta do Admin Console (por padrão 9090/HTTP ou 9091/HTTPS), sem necessidade de sessão prévia, credencial, ou configuração não padrão — a única pré-condição é que o console administrativo esteja acessível na rede a partir de onde o atacante está. Não há complexidade de exploração: é uma única requisição GET com o encoding %uXXXX embutido no caminho, e o próprio advisory do fornecedor descreve o teste de forma direta usando uma URL desse tipo apontada para o arquivo de log do servidor.
O impacto documentado pelo fornecedor é acesso a páginas administrativas restritas — o que já expõe informações sensíveis (logs, configurações) e pode permitir alterações administrativas dependendo de quais páginas ficam alcançáveis por esse caminho. O nome do PoC público catalogado ('Authentication Bypass / Remote Code Execution') indica que pesquisadores encadearam esse bypass com funcionalidades administrativas do próprio Openfire (como upload/gestão de plugins) para chegar a execução de código — mas os detalhes desse encadeamento não estão nas fontes usadas aqui e não devem ser tratados como confirmados pelo fornecedor nesta página.
A presença no catálogo KEV da CISA confirma exploração ativa em ambientes reais, não apenas prova de conceito de laboratório. Existe módulo Metasploit e template Nuclei públicos, o que baixa ainda mais a barreira técnica para exploração em massa via scanning de internet.
Versões
Como se proteger
Atualizar é a mitigação real: 4.6.8 para o ramo 4.6.x, 4.7.5 para o ramo 4.7.x, e 4.8.0 (ramo novo) quando disponível. As versões corrigidas passam a detectar o encoding não-padrão de UTF-16 nas checagens de traversal, removem a dependência de wildcard nas exclusões de autenticação, desativam os padrões de exclusão específicos do setup depois que a instalação termina, e — a partir da 4.8.0 — o servidor web embutido do Admin Console passa a vincular à interface loopback por padrão.
Se a atualização não for viável de imediato, o próprio fornecedor recomenda restringir acesso de rede ao Admin Console: bloquear as portas 9090 e 9091 em interfaces não-loopback via firewall/ACL, VPN ou security group de nuvem, garantindo que só administradores de confiança alcancem o console — nunca expor essas portas à internet. O fornecedor alerta que plugins como REST API, Monitoring Service, User Service e Random Avatar podem depender do comportamento antigo (wildcards, binding não-loopback) e ter funcionalidade reduzida com as mitigações ou com as correções da 4.8.0; nesses casos pode ser necessário reativar `adminConsole.access.allow-wildcards-in-excludes` e evitar restringir o bind à loopback, o que reduz a eficácia da proteção — um trade-off que precisa ser avaliado caso a caso, e não um mito de mitigação universal.
Restringir acesso de rede sozinho não corrige a causa raiz (a falha de parsing de encoding permanece no código); é um controle compensatório, não substitui a atualização.
Como detectar
Em logs de acesso do servidor web embutido do Openfire (portas 9090/9091), procurar requisições ao prefixo /setup/ contendo sequências de encoding %u, especialmente %u002e%u002e (equivalente a '../' codificado em UTF-16) — esse padrão é o indicador direto tentado contra a falha, conforme o próprio método de reprodução publicado pelo fornecedor. Requisições para caminhos de setup vindas de IPs externos após a instalação já estar concluída são anômalas por definição, já que o ambiente de setup não deveria receber tráfego normal nessa fase.
Como há módulo Metasploit e template Nuclei públicos, também vale monitorar padrões de scanning automatizado contra as portas do Admin Console. Não há um único log de aplicação que confirme exploração bem-sucedida versus tentativa falha sem correlacionar a resposta HTTP (acesso a conteúdo administrativo vs. redirecionamento para login) — o próprio fornecedor usa esse critério de resposta como teste diagnóstico.