← voltar
CVE-2017-15944criticalsob ataqueCWE-119CWE-20

CVE-2017-15944

100Vexday Risk Score

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

ssvc Actcvss 9.8epss 98%
da publicação à arma3 dias
Publicada no NVD11 de dez.
1ª PoC+3d
metasploit11 de dez.
CISA KEV+1711d
probabilidade de exploração
98%top 1% das CVEs
exploração observada
simCISA + VulnCheck
12 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-09-08

Apply updates per vendor instructions.

Resumo

Cadeia de três falhas encadeadas na interface de gerenciamento web do PAN-OS (e Panorama) que permite execução remota de código como root sem autenticação. Descoberta por Philip Pettersson e divulgada em dezembro de 2017, está no catálogo KEV da CISA como exploração confirmada. O impacto real depende de um pré-requisito que a nota do fornecedor já cita como mitigação de fato: a interface de gerenciamento precisa estar acessível pela rede do atacante — algo que, segundo o próprio pesquisador, era comum encontrar exposto à internet via Shodan/Project Sonar na época.

Detalhamento técnico

O bug #1 é um bypass parcial de autenticação (CWE-287/CWE-020). O servidor web valida sessões checando o cookie PHPSESSID e lendo o arquivo de sessão via função própria `readSessionVarsFromFile()` (em `libpanApiWgetFilter.so`), que usa `strtok()` para parsear o formato serializado do PHP em vez das funções oficiais. O endpoint não autenticado `/esp/cms_changeDeviceContext.esp` aceita um parâmetro `device` que é gravado sem sanitização no arquivo de sessão; injetando a sequência `";` o atacante corrompe o parser e sobrescreve a variável `user`, produzindo um documento XML malformado que a função `panCheckSessionExpired()` interpreta incorretamente como sessão válida.

Com essa sessão falsificada, o bug #2 explora uma injeção XML (CWE-91) no método `Administrator.get`, exposto via RPC JSON em `/php/utils/router.php`. O parâmetro `jsonArgs->id` é concatenado sem sanitização ao atributo `obj` de uma requisição XML enviada ao backend (`pan_cfg_req_ctxt_construct()` em `libpanmp_mp.so`), dando ao atacante controle total sobre os atributos restantes da tag ``. Definindo `async-mode='yes'` e manipulando o atributo `cookie`, o atacante força a criação de um diretório temporário cujo caminho ele controla — incluindo sequências de path traversal (CWE-22) — em `/opt/pancfg/session/pan/user_tmp//`.

O bug #3, não detalhado publicamente em profundidade pelo fornecedor, é um script de cron vulnerável que processa arquivos/diretórios sob caminhos como `/opt/pancfg/mgmt/logdb/traffic/1/` de forma insegura. Nomeando o diretório criado no passo anterior com uma sequência que inclui um comando (via `find ... -exec`), o cron executa esse comando como root na próxima vez que dispara — por padrão a cada 15 minutos, segundo o módulo Metasploit.

O atacante não controla apenas dados de aplicação: controla o valor de um cookie de sessão corrompido, o payload JSON enviado ao RPC, e o nome de um diretório no sistema de arquivos que termina sendo interpretado como comando de shell pelo cron.

Como é explorada

Pré-requisito real e único: acesso de rede à interface de gerenciamento web (HTTP/HTTPS) do dispositivo, sem necessidade de credenciais. Não há outra pré-condição de configuração — a cadeia inteira é pré-autenticação. A complexidade técnica de encadear os três bugs é alta (é um PoC de pesquisa, não um clique único), mas está totalmente automatizada em um módulo Metasploit público, o que reduz a barreira prática a quase zero para quem tem a interface exposta.

Na prática, o ataque tem duas fases: (1) obtenção de um cookie de sessão corrompido e criação, via RPC JSON, de um diretório com nome malicioso sob um caminho monitorado por cron; (2) espera pela próxima execução do job de cron (até ~20 minutos no módulo Metasploit) para que o comando embutido no nome do diretório seja executado como root. O resultado final é shell reverso com privilégio de root no próprio appliance de firewall — comprometimento total do dispositivo, não apenas de uma aplicação nele.

A CISA lista exploração ativa confirmada no catálogo KEV (adicionada em 2022, bem depois da divulgação original de 2017), o que indica reaproveitamento contínuo do PoC/módulo contra interfaces de gerenciamento ainda expostas e desatualizadas.

Versões

Afetadas
PAN-OS 6.1.18 e anteriores; PAN-OS 7.0.18 e anteriores; PAN-OS 7.1.13 e anteriores. Segundo o advisory oficial, PAN-OS 8.0 não é afetado por exploração remota não autenticada via esta CVE (mas recebeu patch em 8.0.6 como defesa em profundidade). O PoC público do pesquisador original, por outro lado, lista PAN-OS 8.0.5 e anteriores como vulneráveis na cadeia completa — divergência entre fornecedor e pesquisador.
Corrigidas em
PAN-OS 6.1.19 e posteriores; PAN-OS 7.0.19 e posteriores; PAN-OS 7.1.14 e posteriores; PAN-OS 8.0.6 e posteriores (patch de defesa em profundidade, segundo o fornecedor).

Como se proteger

Atualizar para as versões corrigidas é a única solução definitiva. Como paliativo quando a atualização não é imediata, o fornecedor distribuiu o content update 756 com as assinaturas de vulnerabilidade #40483 e #40484 — mas elas só funcionam se aplicadas a uma regra de firewall que proteja especificamente o tráfego destinado à interface de Management, o que exige que essa interface esteja de fato dentro de uma zona controlada por regra (não vale para tráfego direto à interface física de gerência fora do plano de dados).

A mitigação mais eficaz na prática, e que o próprio fornecedor recomenda como boa prática independente do patch, é isolar a interface de gerenciamento: segmentação de rede dedicada ou uso do controle de lista de acesso por IP nativo do PAN-OS, restringindo o acesso apenas ao pessoal de administração. Alternativa quando não é possível segmentar: gerenciar via Panorama com context switching, desabilitando completamente o acesso HTTP/HTTPS de gerenciamento em cada appliance vulnerável — isso elimina o vetor de rede da própria falha.

O que não mitiga: apenas trocar a senha de administrador não ajuda, porque a cadeia inteira contorna a autenticação antes de chegar a qualquer verificação de credencial. Vale notar uma divergência entre fontes: o advisory do fornecedor afirma que PAN-OS 8.0 não é explorável remotamente por usuário não autenticado através desta CVE específica (patch em 8.0.6 é defesa em profundidade), enquanto o PoC público do pesquisador lista '8.0.5 e anteriores' como vulnerável na cadeia completa. Trate 8.0.6 como o piso mínimo de qualquer forma.

Como detectar

Nos logs do servidor web de gerenciamento, procurar requisições GET a `/esp/cms_changeDeviceContext.esp` com o parâmetro `device` contendo sequências de aspas simples seguidas de ponto-e-vírgula (padrão `%27";user|s.`) — isso é a assinatura da corrupção de sessão. Em seguida, procurar chamadas POST a `/php/utils/router.php` (ou `/php/utils/router.php/Administrator.get`) com corpo JSON contendo `Administrator.get`, `async-mode='yes'` e sequências de path traversal (`../../../../..`) no campo `cookie` dentro do parâmetro `id`.

No sistema de arquivos, diretórios inesperados sob `/opt/pancfg/session/pan/user_tmp/` ou `/opt/pancfg/mgmt/logdb/traffic/1/` cujo nome contenha metacaracteres de shell (por exemplo `-exec`, `openssl`, `s_client`) indicam a fase final da cadeia, antes da execução pelo cron. As assinaturas de conteúdo #40483 e #40484 do fornecedor, se ativas em uma regra cobrindo o tráfego da interface de Management, também geram alerta correlato.

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.
Palo Alto Networks PAN-OS before 6.1.19, 7.0.x before 7.0.19, 7.1.x before 7.1.14, and 8.0.x before 8.0.6 allows remote attackers to execute arbitrary code via vectors involving the management interface.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.