← back
CVE-2023-36847mediumunder attackCWE-306

Junos OS: EX Series: A vulnerability in J-Web allows an unauthenticated attacker to upload arbitrary files

85Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 5.3epss 85%
from disclosure to weapon8 days
Published on NVDAug 17
1st PoC+8d
CISA KEV+88d
exploitation probability
85%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
2 public exploit(s)
Action required by CISAfederal deadline: 2023-11-17

Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
Junos OS em EX Series: todas as versões anteriores a 20.4R3-S8; 21.1R1 e posteriores da série 21.1; 21.2 anteriores a 21.2R3-S6; 21.3 anteriores a 21.3R3-S5; 21.4 anteriores a 21.4R3-S4; 22.1 anteriores a 22.1R3-S3; 22.2 anteriores a 22.2R3-S1; 22.3 anteriores a 22.3R2-S2 e 22.3R3; 22.4 anteriores a 22.4R2-S1 e 22.4R3.
Fixed in
20.4R3-S8; 21.2R3-S6; 21.3R3-S5; 21.4R3-S4; 22.1R3-S3; 22.2R3-S1; 22.3R2-S2 (ou 22.3R3); 22.4R2-S1 (ou 22.4R3), e versões posteriores nos respectivos ramos, conforme boletim JSA72300 da Juniper.

How to protect

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.

How to detect

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.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
A Missing Authentication for Critical Function vulnerability in Juniper Networks Junos OS on EX Series allows an unauthenticated, network-based attacker to cause limited impact to the file system integrity. With a specific request to installAppPackage.php that doesn't require authentication an attacker is able to upload arbitrary files via J-Web, leading to a loss of integrity for a certain part of the file system, which may allow chaining to other vulnerabilities. This issue affects Juniper Networks Junos OS on EX Series: * All versions prior to 20.4R3-S8; * 21.1 versions 21.1R1 and later; * 21.2 versions prior to 21.2R3-S6; * 21.3 versions prior to 21.3R3-S5; * 21.4 versions prior to 21.4R3-S4; * 22.1 versions prior to 22.1R3-S3; * 22.2 versions prior to 22.2R3-S1; * 22.3 versions prior to 22.3R2-S2, 22.3R3; * 22.4 versions prior to 22.4R2-S1, 22.4R3.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.