
Um scanner abrangente de vulnerabilidades para CVE-2025-13780, uma vulnerabilidade de Execução Remota de Código (RCE) no pgAdmin 4 versões ≤ 8.14.
Um scanner abrangente de vulnerabilidades para CVE-2025-13780, uma vulnerabilidade de Execução Remota de Código (RCE) no pgAdmin 4 versões ≤ 8.14.
A vulnerabilidade existe no recurso Restore do pgAdmin 4. A aplicação tenta bloquear comandos shell perigosos (que começam com \) usando uma expressão regular. No entanto, essa verificação pode ser ignorada.
(^|\n)[ \t]*\\\xef\xbb\xbf faz com que o regex não corresponda\n\r em vez de \n antes da barra invertida# Clone o repositório
git clone https://github.com/ThemeHackers/CVE-2025-13780.git
cd CVE-2025-13780
# Instale as dependências
pip install -r requirements.txt
requests - Biblioteca HTTP para requisições de APIrich (opcional) - Saída de terminal aprimorada com cores e barras de progressopython-socketio & websocket-client (opcional) - Suporte a WebSocket para o modo de exploit# Verificação básica
python3 scanner.py http://localhost:5050
# Com autenticação
python3 scanner.py http://localhost:5050 --email [email protected] --password admin
# Modo verboso
python3 scanner.py http://localhost:5050 -v
# Verificar a partir de arquivo
python3 scanner.py -f targets.txt
# Com multi-threading (padrão: 5 threads)
python3 scanner.py -f targets.txt --threads 10
# Exportar resultados para JSON
python3 scanner.py -f targets.txt -o results.json --json
O scanner calcula uma pontuação de confiança (0-100) com base em múltiplos fatores:
Para versões ≤ 8.14:
Para versões > 8.14:
Para versões desconhecidas:
Use o Docker Compose para configurar uma instância vulnerável do pgAdmin 4:
docker-compose up -d
[email protected]admin| Código | Significado |
|---|---|
| 0 | Nenhuma vulnerabilidade encontrada |
| 1 | Um ou mais alvos vulneráveis encontrados |
| 2 | Ocorreram erros na verificação |
╔═══════════════════════════════════════════════════════════════╗
║ CVE-2025-13780 pgAdmin 4 Scanner ║
║ Regex Bypass Remote Code Execution ║
║ ║
║ Affected: pgAdmin 4 <= 8.14 ║
╚═══════════════════════════════════════════════════════════════╝
[*] Checking connectivity to http://localhost:5050
[+] Target appears to be pgAdmin
[+] Detected version: 8.14
[+] CSRF token obtained
[!] Version 8.14 is in vulnerable range (<= 8.14)
[*] Testing regex bypass patterns
[+] BOM bypass: BYPASSED
[+] CRLF bypass: BYPASSED
⚠️ VULNERABILITY DETECTED ⚠️
Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizado.
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
| Opção | Descrição |
|---|
target | URL do alvo (ex.: http://localhost:5050) |
-f, --file | Arquivo contendo a lista de alvos (um por linha) |
-e, --email | E-mail do pgAdmin para autenticação |
-p, --password | Senha do pgAdmin para autenticação |
-o, --output | Arquivo de saída para os resultados |
--json | Produzir resultados em formato JSON |
-q, --quiet | Suprime banner e mensagens informativas |
-v, --verbose | Ativa saída verbosa/de depuração |
-t, --timeout | Tempo limite de requisição em segundos (padrão: 10) |
--threads | Número de threads para varredura de múltiplos alvos (padrão: 5) |
--exploit-demo | Executar modo de demonstração de exploit |
--exploit | Executar exploit real (requer --lhost) |
--lhost | IP do atacante para callback de reverse shell |
--lport | Porta do atacante para reverse shell (padrão: 4444) |
--cmd | Comando personalizado para executar (opcional) |
| Fator | Pontos Máximos | Detalhes |
|---|
| Versão no intervalo vulnerável (≤ 8.14) | 40 | Versão detectada como ≤ 8.14 |
| Versão desconhecida | 15 | Quando a versão não pode ser determinada |
| Endpoint Restore acessível | 25 | API Restore acessível sem autenticação |
| Endpoint Restore (requer autenticação) | 15 | API Restore existe, mas requer autenticação |
| Bypasses BOM e CRLF funcionam | 25 | Ambos os métodos de bypass de regex têm sucesso |
| Um método de bypass funciona | 20 | Bypass BOM ou CRLF tem sucesso |
| Endpoint de navegador acessível | 10 | Interface principal do pgAdmin acessível |