Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-93616-check — Verificador seguro de estado de patch não autenticado para Check Point CPM RCE CVE-2026-93616; sonda o login SOAP do UpgradeSvcRemote na porta TCP 19009 sem explorar. | Kitploit
Ferramentas/GitHubGitHub/bishopfox/cve-2026-93616-check
Ferramentas DefensivasScanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoSegurança de RedeTestes de PenetraçãoFerramenta de Acesso Remoto
GitHub

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 →
bishopfox/cve-2026-93616-check

CVE-2026-93616-check

Verificador seguro de estado de patch não autenticado para Check Point CPM RCE CVE-2026-93616; sonda o login SOAP do UpgradeSvcRemote na porta TCP 19009 sem explorar.

Ver Repositório
há 1 diaAinda não revisado
Compartilhar

Check Point Security Management Unauthenticated RCE — Script de Detecção de Vulnerabilidade

Uma verificação não autenticada de estado de patch para CVE-2026-93616, a travessia de diretório não autenticada no servidor Check Point Security Management (CPM) que alcança Runtime.exec(), corrigida em sk1000171 em 2026-09-22. CWE-22, CVSS 9.8 Crítico (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), explorada em ambiente real. A Check Point é a CNA; o problema foi identificado a partir de exploração em ambiente real, e não de um relatório externo.

O servidor CPM expõe serviços web SOAP na porta TCP 19009. O método de login loginAsApplicationReadOnlyPublicSession do UpgradeSvcRemote encaminha seu parâmetro targetVersion para um caminho de sistema de arquivos passado a Runtime.exec sem validação, de modo que um chamador não autenticado pode redirecionar a execução para um script escolhido pelo atacante. A correção adiciona um padrão de Bean Validation a targetVersion que rejeita um separador de caminho.

O script informa se essa correção está presente em cada alvo. Ele envia um único caractere ilegal em targetVersion, nunca uma sequência de travessia, e não autentica, não faz upload de arquivo nem executa nada no alvo. Um resultado diferente de VULNERABLE não indica, por si só, que um alvo está corrigido; consulte Interpretando resultados não vulneráveis.

Builds em fim de suporte são tratadas explicitamente. Em trilhas anteriores à R81.10, o método de login recebe menos parâmetros, então a sonda primária é rejeitada pela deserialização XML antes que o estado de patch possa ser lido. Quando um servidor Check Point rejeita a sonda dessa forma, o script envia uma chamada de acompanhamento no formato de parâmetros mais antigo. Se o método de login então despachar, o alvo é uma build afetada para a qual a Check Point nunca publicou correção, e o veredito é VULNERABLE com o motivo affected-eos-no-fix. A chamada de acompanhamento não carrega mode nem targetVersion, portanto também não envia nada para validar nem nada para atravessar. Isso fecha uma lacuna na qual um servidor legado seria, de outra forma, lido como não identificável.

Uso

# single target (port defaults to 19009)
./cve_2026_93616_check.py mgmt.example.com

# explicit port
./cve_2026_93616_check.py mgmt.example.com:19009

# several targets
./cve_2026_93616_check.py mds-a.example.com mds-b.example.com

# scan a list, one target per line ('#' comments allowed), compact output
./cve_2026_93616_check.py -f targets.txt --brief

# machine-readable output for pipelines
./cve_2026_93616_check.py -f targets.txt --json > results.json

Python 3.8+, apenas biblioteca padrão — sem pacotes de terceiros.

Execute a ferramenta contra os servidores de gerenciamento (Security Management, Multi-Domain Management, Log, Multi-Domain Log e SmartEvent), não contra os gateways. A verificação tem como alvo o listener SOAP do CPM na porta TCP 19009, que os gateways não executam.

Opções

FlagDescrição
TARGETUm ou mais alvos HOST[:PORT]; a porta padrão é 19009
-f, --targets-file FILELê alvos de um arquivo (um por linha; comentários com #)
-p, --port PORTPorta padrão quando um alvo não especifica uma (padrão: 19009)
--timeout SECSTimeout por sonda (padrão: 15)
--workers NAlvos simultâneos (padrão: 16); a saída permanece na ordem de entrada
-b, --briefUma linha alinhada por alvo, para escanear muitos hosts
--jsonEmite JSON estruturado, incluindo os marcadores de sonda por alvo
--no-colorDesativa saída colorida (também respeita NO_COLOR e não-TTY)

Exemplos

Servidor vulnerável (saída padrão; o marcador [!] e VULNERABLE são exibidos em vermelho em um TTY):

$ ./cve_2026_93616_check.py mgmt.example.com
[!] mgmt.example.com:19009: VULNERABLE  [dispatched-without-validation]
      loginAsApplicationReadOnlyPublicSession accepted an illegal targetVersion and dispatched it; the fix's input validation is absent

Servidor corrigido:

$ ./cve_2026_93616_check.py mgmt-dr.example.com
[+] mgmt-dr.example.com:19009: PATCHED  [validation-constraint-present]
      the server rejected an illegal targetVersion with the input-validation constraint added by the fix (Jumbo Hotfix R82.10 Take 45 or equivalent)

Um servidor de gerenciamento Check Point que respondeu mas não despachou o método de login, de modo que o estado de patch não pôde ser lido:

$ ./cve_2026_93616_check.py log.example.com
[?] log.example.com:19009: INCONCLUSIVE  [cpm-no-dispatch]
      a Check Point management fault came back, but the UpgradeSvcRemote login method did not dispatch, so patch state could not be read

Múltiplos alvos com --brief:

$ ./cve_2026_93616_check.py -f targets.txt --brief; echo "exit: $?"
VULNERABLE    mgmt.example.com:19009           dispatched-without-validation
PATCHED       mgmt-dr.example.com:19009        validation-constraint-present
INCONCLUSIVE  log.example.com:19009            cpm-no-dispatch
UNAFFECTED    web.example.com:19009            not-cpm
ERROR         offline.example.com:19009        unreachable
exit: 1

Saída JSON com --json. Os marcadores de sonda são incluídos para que o veredito possa ser conferido com o que a resposta realmente continha:

$ ./cve_2026_93616_check.py mgmt.example.com mgmt-dr.example.com --json
[
  {
    "target": "mgmt.example.com:19009",
    "verdict": "VULNERABLE",
    "reason": "dispatched-without-validation",
    "detail": "loginAsApplicationReadOnlyPublicSession accepted an illegal targetVersion and dispatched it; the fix's input validation is absent",
    "http_status": 500,
    "probe": {
      "http_status": 500,
      "saw_validation": false,
      "saw_dispatch": true,
      "saw_cpm": true,
      "note": ""
    }
  },
  {
    "target": "mgmt-dr.example.com:19009",
    "verdict": "PATCHED",
    "reason": "validation-constraint-present",
    "detail": "the server rejected an illegal targetVersion with the input-validation constraint added by the fix (Jumbo Hotfix R82.10 Take 45 or equivalent)",
    "http_status": 500,
    "probe": {
      "http_status": 500,
      "saw_validation": true,
      "saw_dispatch": true,
      "saw_cpm": true,
      "note": ""
    }
  }
]

É Seguro Executar?

A verificação destina-se ao uso contra sistemas de produção:

  • Ela não autentica. Nenhuma sessão, credencial ou certificado de cliente é apresentado. Ela observa como o servidor lida com um parâmetro malformado, o que depende da build instalada.
  • Ela nunca envia uma sequência de travessia. A sonda primária coloca um único caractere ilegal (!) em targetVersion; esse único caractere é suficiente para acionar a validação da build corrigida, e não pode escapar de um diretório como um separador de caminho faria. A sonda de acompanhamento legada não carrega targetVersion algum.
  • Ela não executa nada. A sonda primária omite o elemento domainId, então em um servidor não corrigido o método lança uma NullPointerException ao construir seus parâmetros, antes que ReflectionUtils alcance Runtime.exec. Mesmo sem isso, o valor da sonda resolve para um diretório que não existe, portanto não há script a executar. A sonda legada envia apenas um nome de aplicação e timeout, então não tem nada a partir do qual construir um caminho.
  • Ela não faz upload de arquivo. A metade de escrita de arquivo da cadeia de exploração usa um serviço diferente, que esta ferramenta nunca chama.
  • Ela abre uma conexão TCP por sonda e a fecha após ler a resposta.

Pegada de requisições e logs

Baixar ferramenta