Lanzamiento de PostgreSQL 18.4, 17.10, 16.14, 15.18, y 14.23
El Grupo Global de Desarrollo de PostgreSQL ha lanzado una actualización para todas las versiones soportadas de nuestro sistema de base de datos, incluyendo la 18.4, 17.10, 16.14, 15.18, y 14.23. Esta versión corrige 11 vulnerabilidades de seguridad y más de 60 errores notificados en los últimos meses.
Para consultar la lista completa de los cambios realizados, revisen las notas de la versión.
Notificación de EOL para PostgreSQL 14
PostgreSQL 14 dejará de recibir correcciones el 12 de noviembre de 2026. Si están ejecutando PostgreSQL 14 en un entorno de producción, les sugerimos que hagan planes para actualizar a una versión más reciente y soportada de PostgreSQL. Para más información, consulten nuestra política de versiones.
Problemas de seguridad
CVE-2026-6472CREATE TYPE de PostgreSQL no comprueba el privilegio CREATE para esquemas multirange
Puntuación base CVSS 3.1: 5.4
Versiones soportadas vulnerables: 14 – 18.
Una omisión en la comprobación de autorizaciones dentro de CREATE TYPE de PostgreSQL permite que un creador de objetos manipule consultas de terceros que utilizan search_path para localizar tipos definidos por el usuario, incluidos aquellos definidos mediante extensiones. Como resultado, un atacante podría lograr que la víctima ejecute funciones SQL arbitrarias de su elección. Las versiones afectadas son todas las anteriores a PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23.
El proyecto PostgreSQL agradece a Jelte Fennema-Nio por reportar este problema.
CVE-2026-6473: El servidor de PostgreSQL asigna recursos insuficientes debido a wraparound de enteros
Puntuación base CVSS 3.1: 8.8
Versiones soportadas vulnerables: 14 – 18.
El wraparound de enteros en varias funcionalidades del servidor de PostgreSQL permite que una entrada proporcionada por una aplicación induzca al servidor a realizar asignaciones de memoria insuficientes y termine escribiendo fuera de los límites. Esto provoca un error de segmentación. Las versiones afectadas son todas las anteriores a PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23.
El proyecto PostgreSQL agradece a Anemone, A1ex, Xint Code, Jihe Wang, Jingzhou Fu, Pavel Kohout, Petr Simecek, www.aisle.com, Bruce Dang of Calif.io, y Sven Klemm por reportar este problema.
CVE-2026-6474: timeofday() de PostgreSQL puede revelar porciones de la memoria del servidor
Puntuación base CVSS 3.1: 4.3
Versiones soportadas vulnerables: 14 – 18.
Una cadena de formato controlada externamente en la función timeofday() de PostgreSQL permite que un atacante obtenga porciones de memoria del servidor utilizando zonas horarias manipuladas específicamente para ese fin. Las versiones afectadas son todas las anteriores a PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23.
El proyecto PostgreSQL agradece a Xint Code por reportar este problema.
CVE-2026-6475: pg_basebackup y pg_rewind de PostgreSQL pueden sobrescribir archivos no relacionados elegidos por el superusuario de origen
Puntuación base CVSS 3.1: 8.8
Versiones soportadas vulnerables: 14 – 18.
El manejo de enlaces simbólicos en pg_basebackup (formato plano) y en pg_rewind permite que un superusuario del servidor de origen sobrescriba archivos locales —por ejemplo /var/lib/postgres/.bashrc— y tome control de la cuenta del sistema operativo. No obstante, iniciar el servidor después de ejecutar estas herramientas ya implica confiar en el superusuario de origen, debido a mecanismos como shared_preload_libraries. Por ello, este problema solamente tendría impacto práctico si se realiza alguna acción intermedia antes de arrancar el servidor, como trasladar los archivos a otra máquina virtual o generar un snapshot de la VM. Las versiones afectadas son todas las anteriores a PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23.
El proyecto PostgreSQL agradece a Valery Gubanov, el equipo XlabAI de Tencent Xuanwu Lab, Atuin Automated Vulnerability Discovery Engine, Zhanpeng Liu (pkugenuine(at)gmail(dot)com), Guannan Wang (wgnbuaa(at)gmail(dot)com), y Guancheng Li (lgcpku(at)gmail(dot)com) por reportar este problema.
CVE-2026-6476: pg_createsubscriber de PostgreSQL permite inyección SQL mediante el nombre de la suscripción
Puntuación base CVSS 3.1: 7.2
Versiones soportadas vulnerables: 17 – 18.
Una inyección SQL en pg_createsubscriber de PostgreSQL permite a un atacante con permisos pg_create_subscription ejecutar código SQL arbitrario con privilegios de superusuario. El ataque se produce en la siguiente ejecución de pg_createsubscriber. En las versiones principales 17 y 18, están afectadas las versiones menores anteriores a PostgreSQL 18.4 y 17.10. Las versiones anteriores a la 17 no se ven afectadas.
El proyecto PostgreSQL agradece a Yu Kunpeng por reportar este problema.
CVE-2026-6477: las funciones lo_* de libpq en PostgreSQL permiten que un superusuario del servidor sobrescriba la memoria del stack del cliente
Puntuación base CVSS 3.1: 8.8
Versiones soportadas vulnerables: 14 – 18.
El uso de la función potencialmente peligrosa PQfn(..., result_is_int=0, ...) en las funciones lo_export(), lo_read(), lo_lseek64(), y lo_tell64() de libpq en PostgreSQL permite que un superusuario del servidor sobrescriba un búfer en el stack del cliente con una respuesta de gran tamaño arbitrario. Al igual que gets(), PQfn(..., result_is_int=0, ...) almacena datos de longitud arbitraria, definidos por el servidor, en un búfer de tamaño no determinado. Dado que tanto el comando \lo_export en psql como pg_dump invocan lo_read(), el superusuario del servidor puede provocar la sobrescritura de la memoria del stack de pg_dump o psql. Las versiones afectadas son todas las anteriores a PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23.
El proyecto PostgreSQL agradece a Yu Kunpeng y Martin Heistermann por reportar este problema.
CVE-2026-6478: PostgreSQL divulga contraseñas con hash MD5 mediante un canal de temporización encubierto
Puntuación base CVSS 3.1: 6.5
Versiones soportadas vulnerables: 14 – 18.
Un canal de temporización encubierto en la comparación de contraseñas con hash MD5 durante la autenticación en PostgreSQL puede ser aprovechado por un atacante para recuperar credenciales de usuario suficientes para autenticarse. Este problema no afecta a las contraseñas con scram-sha-256, que es el método predeterminado en todas las versiones soportadas. No obstante, algunas bases de datos pueden seguir utilizando contraseñas MD5 heredadas de actualizaciones desde PostgreSQL 13 o versiones anteriores. Las versiones afectadas son todas las anteriores a PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23.
El proyecto PostgreSQL agradece a Joe Conway por reportar este problema.
CVE-2026-6479: La inicialización de SSL/GSS en PostgreSQL provoca una denegación de servicio por recursión incontrolada
Puntuación base CVSS 3.1: 7.5
Versiones soportadas vulnerables: 14 – 18.
La recursión no controlada en la negociación de SSL y GSS de PostgreSQL permite que un atacante con acceso a un socket AF_UNIX de PostgreSQL provoque una denegación de servicio prolongada. Si tanto SSL como GSS están deshabilitados, el mismo ataque puede realizarse mediante acceso a un socket TCP de PostgreSQL. Las versiones afectadas son todas las anteriores a PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23.
El proyecto PostgreSQL agradece a Calif.io en colaboración con Claude y Anthropic Research por reportar este problema.
CVE-2026-6575: pg_restore_attribute_stats de PostgreSQL permite valores que provocan lecturas fuera de los límites del array de estadísticas durante la planificación de consultas
Puntuación base CVSS 3.1: 4.3
Versiones soportadas vulnerables: 18.
El desbordamiento de lectura del búfer en la función pg_restore_attribute_stats() de PostgreSQL acepta valores de array con longitudes no coincidentes. Esta condición puede ocasionar que el planificador de consultas lea más allá del final de uno de los arrays implicados. En consecuencia, un mantenedor de la tabla podría inferir valores de memoria fuera de los límites del array. Dentro de la versión principal 18, se encuentran afectadas las versiones anteriores a PostgreSQL 18.4. Las versiones anteriores a PostgreSQL 18 no presentan esta vulnerabilidad.
El proyecto PostgreSQL agradece a Jeroen Gui por reportar este problema.
CVE-2026-6637: refint de PostgreSQL permite desbordamiento de búfer del stack e inyección SQL
Puntuación base CVSS 3.1: 8.8
Versiones soportadas vulnerables: 14 – 18.
Un desbordamiento de búfer del stack en el módulo refint de PostgreSQL puede permitir que un usuario de base de datos sin privilegios ejecute código arbitrario con los permisos del usuario del sistema operativo que ejecuta PostgreSQL. También es posible un ataque distinto si la aplicación define una columna controlada por el usuario como clave primaria con cascada refint y permite modificaciones sobre esa columna. En ese escenario, una inyección SQL podría permitir que quien suministra el nuevo valor de la clave primaria ejecute sentencias SQL arbitrarias utilizando los privilegios del usuario de base de datos que realiza la actualización. Las versiones afectadas son todas las anteriores a PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23.
El proyecto PostgreSQL agradece a Nikolay Samokhvalov por reportar este problema.
CVE-2026-6638: REFRESH PUBLICATION de PostgreSQL permite inyección SQL mediante el nombre de tabla
Puntuación base CVSS 3.1: 3.7
Versiones soportadas vulnerables: 16 – 18.
Una inyección SQL en el comando de replicación lógica de PostgreSQL ALTER SUBSCRIPTION ... REFRESH PUBLICATION, permite que el creador de una tabla en el suscriptor ejecute SQL arbitrario utilizando las credenciales asociadas a la publicación. El ataque se produce durante la siguiente ejecución de REFRESH PUBLICATION. Dentro de las versiones principales 16, 17 y 18, están afectadas las versiones menores anteriores a PostgreSQL 18.4, 17.10 y 16.14. Las versiones anteriores a PostgreSQL 16 no están afectadas.
El proyecto PostgreSQL agradece a Pavel Kohout, de Aisle Research por reportar este problema.
Corrección de errores y mejoras
Esta actualización corrige más de 60 errores reportados en los últimos meses. Aunque los problemas que se enumeran a continuación afectan a PostgreSQL 18, es posible que algunos de ellos afecten también a otras versiones de PostgreSQL.
- Corrección de consultas que podrían arrojar resultados incorrectos al emplear una intercalación no determinista sobre un índice único.
- Corrección de la pérdida de diferibilidad en los triggers de claves foráneas. Anteriormente, una clave foránea definida como
DEFERRABLE INITIALLY DEFERREDse comportaba comoNOT DEFERRABLEcuando se cambiaba a estadoNOT ENFORCEDy luego se volvía aENFORCED. En caso de que se presente este problema con una clave foránea, tras instalar esta actualización, es posible solucionarlo configurándola primero comoNOT ENFORCED, y después nuevamente comoENFORCED. - Mejora en la capacidad del planificador de realizar la eliminación de particiones en un mayor número de escenarios.
- Corrección en la eliminación de auto-joins para manejar cláusulas de join que solo contienen columnas booleanas, por ejemplo,
ON t1.boolcol. - Varias correcciones relacionadas con las columnas generadas virtuales, incluyendo la compatibilidad de
INSERT ... ON CONFLICTcuandoEXCLUDEDhace referencia a una columna generada virtual. - Reporte de fallo de serialización cuando
MERGEdetecta una tupla actualizada de forma concurrente en los modos de aislamiento «lectura repetible» o «serializable». - Corrección de
CREATE TABLE ... LIKE ... INCLUDING STATISTICSpara los casos en los que la tabla de origen contenía una o más columnas previamente eliminadas. - Corrección de
WITHOUT OVERLAPSpara permitir dominios. - Se impide que un tipo compuesto sea miembro de sí mismo mediante un
multirange. - Corrección de resultados ocasionalmente incorrectos al ejecutar
array_agg(anyarray)en paralelo. - Prevención del sobredimensionamiento durante la restauración de un respaldo incremental.
- Se evita que procesos de sincronización de slots de replicación lógica se queden bloqueados, impidiendo así la promoción de un servidor standby.
- Hace que la columna
pidde la vista de sistemapg_aiospresente el valorNULLen lugar de0cuando una entrada no cuente con un proceso propietario asociado. - Corrección de casos en los que
pg_stat_replicationmuestra un retraso (lag)NULLincluso cuando la replicación se encuentra activa. - Visualización correcta de las variables de alias de JOIN empleadas en
GROUP BY. - Finalización correcta de procesos secundarios antes de salir del postmaster en caso de fallo del proceso de inicio.
- Corrección de una condición de carrera que podía provocar que un servidor standby que replica el WAL desde un servidor primario de una versión menor anterior entrara en un bucle de caídas y reinicios.
- Se evita la espera indefinida en el apagado de un proceso walsender cuando la replicación lógica está publicando datos de forma activa.
- Se garantiza que los cambios en el mapa de espacio libre se conserven durante el proceso de recuperación. Esto podría afectar al rendimiento en un servidor standby tras su promoción.
- Corrección de varios fallos en la descompresión de respaldos y en el procesamiento de archivos tar usados en
pg_basebackupypg_verifybackup. - Se garantiza que pg_dumpall no ignore los privilegios de roles con OIDs de otorgante inexistentes, restaurando el comportamiento previo a PostgreSQL 16. Si el servidor de origen es PostgreSQL 16 o superior, emite una advertencia cuando falte el otorgante.
- Corrección de
pg_upgradepara que utilice la versión correcta del protocolo al conectarse a servidores fuente más antiguos. - Corrección de la salida en
pg_overexplainal utilizar la opciónRANGE_TABLE. - Corrección de la caída de
postgres_fdwprovocada por un borrado prematuro de una conexión fallida.
Esta versión también actualiza los archivos de datos de zonas horarias a tzdata 2026b, en la que Columbia Británica (America/Vancouver) pasará a estar en UTC-07 durante todo el año (lo que equivale a un horario de verano permanente) a partir de noviembre de 2026. Se asume que, desde ese momento, su abreviatura de zona horaria será MST, si bien esta denominación podría modificarse en el futuro. Además, se incluye una corrección histórica para Moldavia, que utiliza desde 2022 los horarios de transición de horario de verano de la Unión Europea.
Actualización
Todas las actualizaciones de PostgreSQL son acumulativas. Al igual que en otras actualizaciones menores, para instalar esta actualización no es necesario realizar un volcado y volver a cargar la base de datos o usar pg_upgrade. Es suficiente con detener PostgreSQL y actualizar sus binarios.
Si anteriormente omitieron una o más actualizaciones, podría ser necesario seguir algunos pasos posteriores a la actualización. Para más detalles consulten las notas de las versiones anteriores.
Para más detalles, véanse las notas de la versión.
Enlaces
Si desean hacer correcciones o sugerencias para este anuncio de lanzamiento, por favor envíelas a la lista de correo pública pgsql-www@lists.postgresql.org.

