
Un escáner integral de vulnerabilidades para CVE-2025-13780, una vulnerabilidad de ejecución remota de código (RCE) en pgAdmin 4 versiones ≤ 8.14.
Un escáner de vulnerabilidades integral para CVE-2025-13780, una vulnerabilidad de ejecución remota de código (RCE) en pgAdmin 4 versiones ≤ 8.14.
La vulnerabilidad existe en la función Restore de pgAdmin 4. La aplicación intenta bloquear comandos de shell peligrosos (que comienzan con \) mediante una expresión regular. Sin embargo, esta comprobación se puede eludir.
(^|\n)[ \t]*\\\xef\xbb\xbf hace que la regex no coincida\n\r en lugar de \n antes de la barra invertida# Clone the repository
git clone https://github.com/ThemeHackers/CVE-2025-13780.git
cd CVE-2025-13780
# Install dependencies
pip install -r requirements.txt
requests - biblioteca HTTP para peticiones APIrich (opcional) - salida de terminal mejorada con colores y barras de progresopython-socketio y websocket-client (opcionales) - soporte WebSocket para el modo exploit# Basic scan
python3 scanner.py http://localhost:5050
# With authentication
python3 scanner.py http://localhost:5050 --email [email protected] --password admin
# Verbose mode
python3 scanner.py http://localhost:5050 -v
# Scan from file
python3 scanner.py -f targets.txt
# With multi-threading (default: 5 threads)
python3 scanner.py -f targets.txt --threads 10
# Export results to JSON
python3 scanner.py -f targets.txt -o results.json --json
El escáner calcula una puntuación de confianza (0-100) basada en múltiples factores:
Para versiones ≤ 8.14:
Para versiones > 8.14:
Para versiones desconocidas:
Usa Docker Compose para configurar una instancia vulnerable de pgAdmin 4:
docker-compose up -d
[email protected]admin| Código | Significado |
|---|---|
| 0 | No se encontraron vulnerabilidades |
| 1 | Se encontraron uno o más objetivos vulnerables |
| 2 | Se produjeron errores de escaneo |
╔═══════════════════════════════════════════════════════════════╗
║ 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 herramienta se proporciona solo con fines educativos y de pruebas de seguridad autorizadas.
Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.
| Opción | Descripción |
|---|
target | URL del objetivo (p. ej., http://localhost:5050) |
-f, --file | Archivo con la lista de objetivos (uno por línea) |
-e, --email | Email de pgAdmin para autenticación |
-p, --password | Contraseña de pgAdmin para autenticación |
-o, --output | Archivo de salida para los resultados |
--json | Mostrar resultados en formato JSON |
-q, --quiet | Suprimir banner y mensajes informativos |
-v, --verbose | Habilitar salida detallada/de depuración |
-t, --timeout | Tiempo de espera de la petición en segundos (predeterminado: 10) |
--threads | Número de hilos para escaneo multiobjetivo (predeterminado: 5) |
--exploit-demo | Ejecutar modo de demostración del exploit |
--exploit | Ejecutar exploit real (requiere --lhost) |
--lhost | IP del atacante para el callback de reverse shell |
--lport | Puerto del atacante para reverse shell (predeterminado: 4444) |
--cmd | Comando personalizado a ejecutar (opcional) |
| Factor | Puntos máximos | Detalles |
|---|
| Versión en rango vulnerable (≤ 8.14) | 40 | Versión detectada como ≤ 8.14 |
| Versión desconocida | 15 | Cuando la versión no puede determinarse |
| Endpoint Restore accesible | 25 | API Restore accesible sin autenticación |
| Endpoint Restore (requiere autenticación) | 15 | La API Restore existe pero requiere autenticación |
| Tanto el bypass BOM como el CRLF funcionan | 25 | Ambos métodos de bypass de regex tienen éxito |
| Un método de bypass funciona | 20 | El bypass BOM o el CRLF tienen éxito |
| Endpoint del navegador accesible | 10 | Interfaz principal de pgAdmin accesible |