Junos OS: EX Series: A vulnerability in J-Web allows an unauthenticated attacker to upload arbitrary files
Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
Resumo
Falha de ausência de autenticação (CWE-306) na interface web de administração J-Web dos switches Juniper EX Series, que permite a um atacante não autenticado enviar um arquivo arbitrário ao endpoint installAppPackage.php. Isoladamente o CVSS é baixo (5.3, apenas impacto de integridade), mas essa CVE faz parte de um conjunto de quatro falhas em J-Web (CVE-2023-36844/36845/36846/36847) que, encadeadas, permitem execução remota de código pré-autenticação — por isso está na KEV da CISA e tem exploração ativa confirmada.
Detalhamento técnico
O ponto vulnerável é o script installAppPackage.php, parte do backend PHP do J-Web, responsável por receber pacotes de aplicação para instalação no dispositivo. Esse script processa requisições de upload sem exigir sessão autenticada, violando o controle de acesso esperado para uma função crítica do sistema (CWE-306, Missing Authentication for Critical Function). O atacante controla o conteúdo do arquivo enviado e, dentro de certos limites, o local no sistema de arquivos onde ele é gravado.
O advisory da Juniper (JSA72300, publicado como boletim fora de ciclo) agrupa essa falha com outras três: CVE-2023-36844 e CVE-2023-36845 tratam de manipulação de variáveis de ambiente do PHP sem autenticação (CWE-473, PHP External Variable Modification), e CVE-2023-36846 é o equivalente desta falha para a linha SRX Series. Individualmente, cada uma tem impacto restrito — só integridade, sem confidencialidade ou disponibilidade diretas, conforme o vetor CVSS (C:N/I:L/A:N).
O risco real está no encadeamento: uma das falhas de manipulação de variáveis de ambiente permite influenciar como o interpretador PHP do J-Web processa requisições subsequentes; combinada com a capacidade de gravar um arquivo arbitrário via installAppPackage.php, o atacante consegue fazer o servidor executar código sob seu controle. Isso eleva o conjunto de quatro vulnerabilidades de baixo/médio para execução remota de código pré-autenticação, apesar de cada CVE isolada ter score CVSS moderado.
Como é explorada
O vetor é de rede, sem exigir autenticação nem interação do usuário (AV:N/AC:L/PR:N/UI:N). O único pré-requisito real é que o serviço J-Web esteja habilitado e acessível ao atacante — em muitos ambientes de produção J-Web é desativado ou restrito a uma interface de gerência isolada, o que reduz a superfície de exposição real frente à gravidade da manchete. Onde J-Web está exposto (inclusive, em casos documentados publicamente, à internet), o ataque consiste em uma requisição HTTP/HTTPS direcionada ao endpoint installAppPackage.php, sem precisar de credenciais.
Existe PoC pública e a CVE está na KEV da CISA, indicando exploração confirmada em campo, tipicamente como parte da cadeia completa com as outras três CVEs do mesmo boletim para obter RCE, e não apenas o upload isolado. Pesquisadores de segurança documentaram e reproduziram publicamente o encadeamento das quatro falhas para comprometimento total do dispositivo — a Juniper reconhece isso na própria descrição ('may allow chaining to other vulnerabilities').
O impacto final documentado pelo fornecedor para esta CVE isolada é gravação de arquivo em parte do sistema de arquivos; o impacto documentado para a cadeia completa é execução de código arbitrário no dispositivo, o que em um switch EX Series significa controle da infraestrutura de rede subjacente.
Versões
Como se proteger
A correção definitiva é atualizar para a versão do Junos OS correspondente ao ramo em uso, conforme a lista de versões corrigidas publicada pela Juniper. Não existe patch isolado só para esta CVE — as correções cobrem o conjunto das quatro vulnerabilidades J-Web do mesmo boletim.
Se a atualização não for viável imediatamente, o paliativo recomendado pela própria Juniper e refletido na KEV é desabilitar o J-Web (serviço de gerência web) ou restringir seu acesso apenas a hosts de gerência confiáveis via firewall filters/ACLs de gerência — isso elimina a superfície de rede necessária para o ataque, ao custo de perder a interface gráfica de administração. Não confiar apenas em autenticação de rede perimetral genérica como mitigação: a falha está na ausência de autenticação da própria aplicação, não em um controle de rede que um firewall corporativo padrão necessariamente cubra, a menos que explicitamente configurado para restringir o acesso ao J-Web.
Dado o status de exploração ativa (KEV) e a prioridade de correção definida pela CISA (prazo de 2023-11-17 para órgãos federais dos EUA), o tratamento recomendado é tratar como urgente mesmo com CVSS moderado, priorizando dispositivos com J-Web exposto à internet ou a redes não confiáveis.
Como detectar
Verificar logs do servidor web do J-Web (processo lighttpd/nginx e logs de PHP no dispositivo) por requisições POST ao endpoint installAppPackage.php originadas de endereços IP não pertencentes à rede de gerência esperada, especialmente sem sessão/cookie de autenticação válido previamente estabelecido. Presença de arquivos inesperados em diretórios temporários usados pelo instalador de pacotes de aplicação do J-Web é indício de exploração bem-sucedida.
Não há assinatura única confiável para toda a cadeia, já que o ataque completo combina múltiplos endpoints e comportamento de PHP; monitorar acesso externo ao J-Web como um todo (via NetFlow/firewall de gerência) é mais eficaz do que procurar apenas por esse endpoint isolado.