Lanzamiento de pgAdmin 4 v9.17
El equipo de desarrollo de pgAdmin se complace en anunciar la versión 9.17 de pgAdmin 4, la cual incluye 28 correcciones de errores y nuevas características, entre ellas las soluciones aplicadas a siete vulnerabilidades de seguridad (CVE-2026-17346 a CVE-2026-17351, y CVE-2026-17566). Para más detalles consulten las notas de la versión.
pgAdmin es la principal herramienta de código abierto para la gestión gráfica de PostgreSQL. Para más información, visiten el sitio web.
Entre los cambios más destacados de esta versión figuran:
Características:
- Se incorpora la identidad del usuario autenticado al registro de acceso HTTP.
- Se añade al gráfico de Helm una plantilla opcional de
HTTPRoutepara Gateway API, como alternativa al Ingress actual. - Se añade una opción para limitar el número de registros que recupera la acción «View Data», permitiendo utilizarla con tablas de gran tamaño sin ejecutar siempre un
SELECT *completo. - Se añade soporte para un proveedor personalizado de fichas XYZ (URL, nombre, CRS, atribución y nivel máximo de zoom) en el Geometry Viewer, además de las capas base integradas actuales.
Correcciones de seguridad:
- Se soluciona una vulnerabilidad que permitía eludir los controles de permisos de las herramientas. Aunque a un usuario se le hubiera denegado el acceso a Query Tool, Grant Wizard o Schema Diff, todavía podía invocar directamente las rutas internas del backend y los controladores de Socket.IO, ya que la validación de permisos solo se realizaba en el punto de acceso principal de cada herramienta. Además, se corrigió un problema que permitía a un usuario sin permisos de propietario establecer una conexión ad hoc con un servidor compartido de otro usuario y crear un nuevo registro de servidor que permanecía asociado al propietario original (CVE-2026-17350).
- Se corrige una vulnerabilidad de inyección de comandos del sistema operativo en la función
MASTER_PASSWORD_HOOK. Un nombre de usuario procedente de una fuente externa (como OAuth2/OIDC, Kerberos o la autenticación del servidor web) que incluyera metacaracteres del shell podía provocar la ejecución de comandos arbitrarios con los privilegios de la cuenta de servicio de pgAdmin cuando la cadena del hook configurada empleaba%u(CVE-2026-17347). - Se corrige un mecanismo que permitía eludir la protección de transacciones de solo lectura del Asistente de IA debido a una discrepancia entre el análisis léxico de sqlparse y el analizador de PostgreSQL al procesar literales de cadena con
standard_conforming_strings = on. Esta diferencia hacía posible que una carga útil maliciosa con múltiples sentencias introdujera unCOMMITdentro de la consulta, eludiendo el conector de solo lectura previsto. Esta corrección completa parcialmente la solución para CVE-2026-12045 (CVE-2026-17351). - Se soluciona una vulnerabilidad de inyección SQL que afectaba al listado de todos los índices de Index Statistics y a las vistas Publications/Subscriptions Dependencies. El problema ocurría cuando el nombre de una tabla, índice, publicación o suscripción contenía un apóstrofo, lo que provocaba que la interpolación de la plantilla no escapara correctamente el valor y permitiera romper la consulta. Esta vulnerabilidad corresponde a una corrección incompleta del problema identificado como CVE-2026-12044 (CVE-2026-17346).
- Se corrigen varias rutas de Constraints, Preferences, Debugger y Schema Diff a las que les faltaba el decorador
@pga_login_required, lo que permitía acceder a ellas sin autenticación cuando se ejecutaba en modo servidor. Esta corrección soluciona parcialmente la vulnerabilidad CVE-2026-12046 (CVE-2026-17348). - Se soluciona un problema por el que una conexión de servidor ad hoc podía copiar las credenciales de base de datos almacenadas de otro usuario (contraseña, opción de guardar contraseña y contraseña del túnel) junto con la información de propietario. Esto permitía que un usuario sin permisos de propietario, tras clonar un servidor compartido de otro usuario, pudiera conectarse a la base de datos utilizando la contraseña almacenada del usuario original (CVE-2026-17349).
- Se corrige una vulnerabilidad de inyección de comandos del sistema operativo en la herramienta de Importación/Exportación de datos. Una exportación basada en consultas podía permitir que una cadena de consulta especialmente manipulada evadiera la validación del equilibrio de paréntesis de
\copy (...), debido a una diferencia en el tratamiento de escapes con el comportamiento predeterminado de psql (standard_conforming_strings = on), dejando expuesta una cláusulaTO PROGRAMque permitía ejecutar comandos arbitrarios (CVE-2026-17566).
Corrección de errores/Mantenimiento:
- Se corrige la generación de SQL incorrecto para columnas SERIAL/identity en «Generate Script» de Schema Diff y en la vista CREATE Script del árbol de navegación, identificando las secuencias propiedad de las columnas mediante
pg_dependen lugar de deducir el nombre de la secuencia. - Se corrige un problema por el que ALT+F5 («Ejecutar consulta en el cursor») no ejecutaba ninguna acción cuando el cursor se encontraba sobre o cerca de una sentencia no seleccionada en una pestaña de Query Tool que contenía varias sentencias separadas por líneas en blanco.
- Se solucionan los problemas de la interfaz de usuario del explorador de objetos de extensiones provocados por los cambios en el catálogo de extensiones de PostgreSQL 19.
- Se identifica un almacén de claves del sistema operativo seleccionado que no sea utilizable, y aplicación de un mecanismo alternativo de forma transparente para evitar que la operación falle.
- Emisión de una advertencia cuando la configuración del proveedor OAuth2 se haya definido en la sección raíz de la configuración en lugar de dentro de
OAUTH2_CONFIG. - Se mantiene la secuencia de EOL seleccionada al copiar el texto de una consulta al portapapeles.
- Se soluciona un problema en el filtro de estado de resultados de Schema Diff que mostraba «No se encontraron diferencias» al volver a activarlo después de haberlo deshabilitado, aunque hubiera diferencias reales.
- Se soluciona un problema por el que el Explorador de objetos mostraba temporalmente el marcado HTML sin procesar en lugar de la etiqueta en gris «[Desconectando…]» durante la desconexión de un servidor o una base de datos.
- Se unifica la lógica relacionada con la visibilidad y el control de acceso de los grupos de servidores compartidos, y actualiza las relaciones del modelo entre ServerGroup y Server/SharedServer.
- Fallo de la compilación del appbundle de macOS si alguna de las bibliotecas empaquetadas tiene enlaces hacia recursos externos al paquete, y análisis de todos los binarios Mach-O para verificar sus dependencias dentro del bundle.
- Se ha fijado el workflow de GitHub sonarqube-scan-action mediante un SHA de commit completo y se ha establecido la versión de Yarn empleada por los scripts de compilación a través del campo
packageManager. - Se actualizan las dependencias externas de JavaScript y Python, entre ellas axios, webpack, react, electron y certifi.
- Se actualiza la traducción correspondiente al chino simplificado (zh_Hans_CN).
Ya están disponibles las versiones para Windows, macOS, Python Wheel, contenedor Docker, RPM, paquete DEB y el código fuente en formato tarball en la sección de descargas.
Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.

