← back
CVE-2023-36844mediumunder attackCWE-473

Junos OS: EX Series: A PHP vulnerability in J-Web allows an unauthenticated attacker to control important environment variables

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 5.3epss 91%
from disclosure to weapon8 days
Published on NVDAug 17
1st PoC+8d
CISA KEV+88d
exploitation probability
91%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
7 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 em scripts PHP legados do J-Web (interface de gerenciamento web) do Junos OS em switches EX Series permite que um atacante não autenticado, via rede, manipule variáveis de ambiente PHP internas através de um request malformado. Isolada, ela só causa perda parcial de integridade (CVSS 5.3), mas é o primeiro elo de uma cadeia de quatro CVEs divulgadas juntas por Juniper em agosto de 2023 (CVE-2023-36844 a 36847) que, combinadas, permitem execução remota de código pré-autenticação — motivo pelo qual entrou no catálogo KEV da CISA e tem exploração ativa confirmada.

Technical detail

A falha é classificada como CWE-473 (PHP External Variable Modification). O J-Web expõe scripts PHP antigos que tratam parâmetros de request HTTP como se fossem variáveis de ambiente ou globais internas do interpretador PHP — um padrão herdado de comportamento estilo 'register_globals', onde dados vindos diretamente do cliente acabam populando variáveis que o próprio código PHP considera confiáveis ou internas.

Com uma requisição crafted, o atacante consegue sobrescrever 'certas variáveis de ambiente importantes' (nas palavras do próprio advisory da Juniper) sem qualquer autenticação. O CVSS oficial (C:N/I:L/A:N) reflete o impacto isolado dessa modificação: nenhuma confidencialidade comprometida diretamente, integridade parcial, sem impacto em disponibilidade.

O valor real da falha, segundo a divulgação conjunta da Juniper e a análise pública que se seguiu, está em encadeamento: a mesma classe de manipulação de variável de ambiente PHP é a base para abusar de outra falha do mesmo lote (inclusão de arquivo via variável de configuração do interpretador, CVE-2023-36845), que por sua vez pode ser combinada com falhas de upload sem autenticação (CVE-2023-36846/36847) para conseguir gravar e executar código arbitrário no dispositivo. CVE-2023-36844 sozinha não executa código; ela abre a porta de controle de ambiente que as outras falhas exploram.

How it’s exploited

Vetor: rede, sem autenticação, contra a interface J-Web (HTTP ou HTTPS de gerenciamento) do EX Series. Pré-condição real que a manchete não deixa claro: J-Web precisa estar habilitado e acessível na interface atacada — em muitos ambientes essa interface é restrita a uma rede de gerenciamento out-of-band, o que reduz a exposição prática mesmo sendo 'unauthenticated'. Onde J-Web está exposto à internet ou a segmentos não confiáveis, a superfície de ataque é total.

Explorada isoladamente, a falha permite ao atacante alterar o comportamento de scripts PHP do J-Web via variáveis de ambiente forjadas, mas o cenário documentado publicamente — inclusive por pesquisadores que publicaram PoC e por scanners de internet que registraram tentativas em massa após a divulgação — é o uso encadeado das quatro CVEs para atingir execução remota de código pré-autenticação completa. É esse encadeamento que justifica a entrada no catálogo KEV da CISA (adicionado em 13/11/2023, prazo de mitigação 17/11/2023) e o CVSS elevado atribuído ao conjunto quando avaliado como cadeia, mesmo com o CVSS individual desta CVE sendo moderado.

A CISA classifica a exploração conhecida e recomenda aplicar a mitigação do fornecedor ou descontinuar o uso do produto se não houver correção disponível — linguagem padrão do catálogo para vulnerabilidades com exploração confirmada em campo, sem detalhar aqui o ator ou a campanha específica.

Versions

Affected
Junos OS em EX Series: todas as versões anteriores a 20.4R3-S9; 21.1 versões 21.1R1 e posteriores; 21.2 anteriores a 21.2R3-S7; 21.3 anteriores a 21.3R3-S5; 21.4 anteriores a 21.4R3-S5; 22.1 anteriores a 22.1R3-S4; 22.2 anteriores a 22.2R3-S2; 22.3 anteriores a 22.3R3-S1; 22.4 anteriores a 22.4R2-S2 e 22.4R3; 23.2 anteriores a 23.2R1-S1 e 23.2R2.
Fixed in
20.4R3-S9; 21.2R3-S7; 21.3R3-S5; 21.4R3-S5; 22.1R3-S4; 22.2R3-S2; 22.3R3-S1; 22.4R2-S2 ou 22.4R3; 23.2R1-S1 ou 23.2R2 — conforme a branch de origem. A série 21.1 não tem release corrigido listado; recomenda-se migração para outra branch.

How to protect

A correção definitiva é atualizar para as versões corrigidas publicadas pela Juniper, específicas por branch: 20.4R3-S9, 21.2R3-S7, 21.3R3-S5, 21.4R3-S5, 22.1R3-S4, 22.2R3-S2, 22.3R3-S1, 22.4R2-S2/22.4R3, 23.2R1-S1/23.2R2, dependendo da versão em uso. Não há atualização de segurança retroativa para a série 21.1 (qualquer versão 21.1R1 ou posterior é afetada e não há branch 21.1 corrigido listado no advisory) — nesses casos a migração para outra branch corrigida é a via.

Se a atualização imediata não for possível, o paliativo documentado pela Juniper e amplamente recomendado é desabilitar o J-Web ou restringir seu acesso exclusivamente a hosts de gerenciamento confiáveis via ACL/firewall, removendo a exposição da interface HTTP/HTTPS a redes não confiáveis. Isso não corrige a falha no código, mas elimina o vetor de rede necessário para exploração pré-autenticação. O custo é perder a interface web de gerenciamento — ambientes que dependem dela precisam migrar para CLI ou outra ferramenta de gestão.

Mito a descartar: trocar credenciais de administrador ou reforçar políticas de senha não mitiga nada, porque a exploração é pré-autenticação — não depende de credencial alguma.

How to detect

Em logs de acesso ao J-Web (tipicamente httpd/nginx do plano de gerenciamento do dispositivo), procurar requisições HTTP/HTTPS com parâmetros anômalos que tentem injetar nomes de variáveis de ambiente ou de configuração do PHP nos campos de query string ou corpo do request — especialmente combinadas com uploads de arquivo ou requisições a scripts PHP legados do J-Web fora do fluxo normal de autenticação. Scanners de internet registraram picos de tentativas de exploração em massa contra J-Web logo após a divulgação de agosto de 2023.

Não há uma assinatura única e confiável para esta CVE isolada: como o impacto direto é modificação de variável interna sem execução imediata de código, o sinal mais forte de comprometimento aparece quando ela é encadeada com as outras três falhas do mesmo lote — nesse caso, procurar por arquivos de configuração PHP alterados no sistema de arquivos do dispositivo e por artefatos de upload não autorizados é mais produtivo do que procurar pela exploração isolada desta CVE.

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 PHP External Variable Modification vulnerability in J-Web of Juniper Networks Junos OS on EX Series allows an unauthenticated, network-based attacker to control certain, important environment variables. Using a crafted request an attacker is able to modify certain PHP environment variables leading to partial loss of integrity, which may allow chaining to other vulnerabilities. This issue affects Juniper Networks Junos OS on EX Series: * All versions prior to 20.4R3-S9; * 21.1 versions 21.1R1 and later; * 21.2 versions prior to 21.2R3-S7; * 21.3 versions prior to 21.3R3-S5; * 21.4 versions prior to 21.4R3-S5; * 22.1 versions prior to 22.1R3-S4; * 22.2 versions prior to 22.2R3-S2; * 22.3 versions prior to 22.3R3-S1; * 22.4 versions prior to 22.4R2-S2, 22.4R3; * 23.2 versions prior to 23.2R1-S1, 23.2R2.
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.