← voltar
CVE-2023-36845criticalsob ataqueCWE-473

Junos OS: EX and SRX Series: A PHP vulnerability in J-Web allows an unauthenticated to control an important environment variable

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 9.8epss 94%
da publicação à arma0 dias
Publicada no NVD17 de ago.
1ª PoC26 de abr.
metasploit17 de ago.
CISA KEV+88d
probabilidade de exploração
94%top 1% das CVEs
exploração observada
simCISA + VulnCheck
39 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2023-11-17

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

Resumo

Falha crítica pré-autenticação no componente J-Web (interface web de administração) do Junos OS em equipamentos EX Series e SRX Series da Juniper. Um atacante sem credenciais e com acesso de rede à interface J-Web consegue controlar a variável de ambiente PHPRC do interpretador PHP, alterando o arquivo de configuração php.ini efetivamente usado pelo processo — o que abre caminho para execução de código arbitrário no dispositivo. Está no catálogo KEV da CISA por exploração confirmada em campo, e é frequentemente encadeada com outras CVEs do mesmo boletim (2023-36846/36847) para virar RCE completo sem qualquer autenticação.

Detalhamento técnico

O CWE associado é CWE-473 (PHP External Variable Modification). O problema está na forma como a stack web do J-Web (front-end nginx/Apache repassando requisições ao PHP-FPM) processa parâmetros da requisição HTTP e os expõe como variáveis de ambiente para o interpretador PHP, sem restringir quais nomes de variável podem ser definidos pelo cliente. Entre essas variáveis está PHPRC, que o próprio PHP usa para localizar o arquivo php.ini a carregar na inicialização do interpretador.

Controlando PHPRC, o atacante consegue apontar o PHP para um arquivo de configuração diferente do legítimo — inclusive um arquivo que ele mesmo influencia via outros vetores da requisição (por exemplo, dados de sessão PHP). Diretivas de php.ini como auto_prepend_file permitem instruir o interpretador a incluir e executar um arquivo PHP arbitrário antes de qualquer script normal ser processado, e é esse mecanismo que pesquisadores demonstraram publicamente ser suficiente para chegar a execução de código, sem depender de vulnerabilidade adicional de upload de arquivo.

O Juniper descreve a falha isoladamente como 'PHP External Variable Modification', mas o boletim oficial (JSA72300) publica CVE-2023-36845 junto com outras três CVEs relacionadas (CVE-2023-36844, CVE-2023-36846, CVE-2023-36847) do mesmo componente J-Web, deixando claro que o fornecedor tratou o conjunto como uma cadeia de exploração pré-auth para RCE completo, mesmo quando cada CVE individual descreve um passo específico da cadeia.

Como é explorada

O vetor é uma requisição HTTP crafted contra a interface J-Web exposta na rede — não exige autenticação, cookie de sessão válido nem configuração não padrão além do próprio J-Web estar habilitado e acessível. A pré-condição real de risco é essa: dispositivos com J-Web desabilitado ou acessível apenas por management network isolada não são explorável remotamente por este vetor, mesmo com versão vulnerável instalada.

A exploração combina o controle de PHPRC com técnicas para influenciar o conteúdo de um arquivo que o PHP passa a interpretar como php.ini (ou diretamente como script via auto_prepend_file), permitindo injeção e execução de código PHP no contexto do processo J-Web, que roda com privilégios elevados no dispositivo. Isso é consistente com o CVSS 9.8 (AV:N/AC:L/PR:N/UI:N) — sem interação do usuário, complexidade de ataque baixa, comprometimento total de confidencialidade, integridade e disponibilidade.

A presença no catálogo KEV da CISA confirma exploração ativa em ambiente real, e a disponibilidade de módulo Metasploit, template Nuclei e PoC pública reduz a barreira técnica para qualquer atacante automatizar o ataque em massa contra dispositivos expostos à internet.

Versões

Afetadas
Junos OS em EX Series e SRX Series: todas as versões anteriores a 20.4R3-S9; 21.1 (todas as versões a partir de 21.1R1); 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.3R2-S2 e 22.3R3-S1; 22.4 anteriores a 22.4R2-S1 e 22.4R3; 23.2 anteriores a 23.2R1-S1 e 23.2R2.
Corrigidas em
20.4R3-S9; 21.2R3-S7; 21.3R3-S5; 21.4R3-S5; 22.1R3-S4; 22.2R3-S2; 22.3R2-S2 / 22.3R3-S1; 22.4R2-S1 / 22.4R3; 23.2R1-S1 / 23.2R2. O boletim oficial (JSA72300) deve ser consultado para status exato do branch 21.1.

Como se proteger

A correção definitiva é atualizar para as versões fixas 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.3R2-S2/22.3R3-S1, 22.4R2-S1/22.4R3, 23.2R1-S1/23.2R2 (branch 21.1 não recebeu fix específico citado pelo fornecedor — verificar orientação do JSA72300 para esse trem).

Quando o patch não é aplicável de imediato, o paliativo real publicado pela Juniper é desabilitar o J-Web ou restringir seu acesso apenas a hosts de gerenciamento confiáveis (via ACL/firewall filter na interface de management), eliminando a superfície de rede necessária para o ataque — isso neutraliza o vetor mesmo em versão vulnerável, ao custo de perder a administração via interface web. Não existe mitigação eficaz que mantenha J-Web exposto à internet sem patch: regras de WAF genéricas não cobrem de forma confiável a manipulação de variável de ambiente PHPRC porque o problema está na camada de repasse de parâmetros ao interpretador, não em um payload de assinatura fixa.

Como detectar

Não há, nas fontes consultadas, uma assinatura de log oficial publicada pela Juniper para detecção confiável desta exploração específica. Como indicador geral, requisições HTTP/HTTPS anômalas dirigidas à interface J-Web contendo parâmetros que tentam definir variáveis de ambiente (padrão associado a PHPRC) ou tráfego incomum para endpoints PHP do J-Web partindo de IPs não administrativos merecem investigação; a presença de módulo Metasploit e template Nuclei públicos sugere que scanners automatizados podem gerar padrões de requisição repetitivos identificáveis em logs de acesso web do dispositivo, mas nenhuma assinatura única e confirmada foi documentada nas fontes revisadas.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
A PHP External Variable Modification vulnerability in J-Web of Juniper Networks Junos OS on EX Series and SRX Series allows an unauthenticated, network-based attacker to remotely execute code. Using a crafted request which sets the variable PHPRC an attacker is able to modify the PHP execution environment allowing the injection und execution of code. This issue affects Juniper Networks Junos OS on EX Series and SRX 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.3R2-S2, 22.3R3-S1; * 22.4 versions prior to 22.4R2-S1, 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:H/I:H/A:H
PoCs públicas encontradas39
githubgithub.com/vulncheck-oss/cve-2023-36845-scanner62githubgithub.com/kljunowsky/CVE-2023-3684555githubgithub.com/Asbawy/Automation-for-Juniper-cve-2023-3684519githubgithub.com/ak1t4/CVE-2023-368455githubgithub.com/cyberh3als/CVE-2023-36845-POC4githubgithub.com/zaenhaxor/CVE-2023-368453githubgithub.com/halencarjunior/CVE-2023-368451githubgithub.com/jahithoque/Juniper-CVE-2023-36845-Mass-Hunting1githubgithub.com/0xNehru/CVE-2023-36845-Juniper-Vulnerability1githubgithub.com/e11i0t4lders0n/CVE-2023-368451githubgithub.com/simrotion13/CVE-2023-368451githubgithub.com/ifconfig-me/CVE-2023-368450githubgithub.com/P4x1s/ansible-cve-2023-368450githubgithub.com/Vignesh2712/Automation-for-Juniper-cve-2023-368450githubgithub.com/kopfjager007/CVE-2023-368450githubgithub.com/iveresk/CVE-2023-36845-6-0githubgithub.com/CharonDefalt/Juniper-exploit-CVE-2023-368450githubgithub.com/cyb3rzest/Juniper-Bug-Automation-CVE-2023-368450vulncheckvulncheck.com/xdb/a2f2dd7e0a50não verificadovulncheckvulncheck.com/xdb/23f413cb1c62não verificadocve_referencepacketstormsecurity.com/files/174865/Juniper-SRX-Firewall-EX-Switch-Remote-Code-Execution.htmlnão verificadovulncheckvulncheck.com/xdb/6ab01cd57d8enão verificadocve_referencepacketstormsecurity.com/files/176969/Juniper-SRX-Firewall-EX-Switch-Remote-Code-Execution.htmlnão verificadovulncheckvulncheck.com/xdb/3fdde8c21f6enão verificadovulncheckvulncheck.com/xdb/db1e7b347773não verificadovulncheckvulncheck.com/xdb/fcb027407d46não verificadovulncheckvulncheck.com/xdb/861198e6f367não verificadovulncheckvulncheck.com/xdb/549b4b2e791enão verificadovulncheckvulncheck.com/xdb/eb307a27c46cnão verificadovulncheckvulncheck.com/xdb/7f3ac2cfdf5anão verificadovulncheckvulncheck.com/xdb/f6208bcc8206não verificadovulncheckvulncheck.com/xdb/4fae7ca850e5não verificadovulncheckvulncheck.com/xdb/c5b62df0eae0não verificadovulncheckvulncheck.com/xdb/f715efbe5fe8não verificadovulncheckvulncheck.com/xdb/40881a555da5não verificadovulncheckvulncheck.com/xdb/f2e8c180103fnão verificadovulncheckvulncheck.com/xdb/bea8d1e01668não verificadovulncheckvulncheck.com/xdb/f1599fa5e102não verificadovulncheckvulncheck.com/xdb/539fa0525155não verificado
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.