Lanzamiento de PostgreSQL 15.2, 14.7, 13.10, 12.14, y 11.19
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 15.2, 14.7, 13.10, 12.14, y 11.19. Con esta versión se soluciona de forma definitiva una vulnerabilidad de seguridad y se corrigen 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.
Problemas de seguridad
CVE-2022-41862: Divulgación de memoria del cliente al conectarse, con Kerberos, a un servidor modificado.
Versiones afectadas: 12 – 15.
Un servidor modificado y no autenticado o un man-in-the-middle no autenticado puede enviar una cadena no finalizada durante el establecimiento del cifrado de transporte de datos de Kerberos. Cuando una aplicación cliente libpq
dispone de una caché de credenciales Kerberos y no desactiva explícitamente la opción gssencmode
, un servidor puede ocasionar un desbordamiento de lectura de libpq
y generar un mensaje de error que contenga bytes no inicializados desde y tras su búfer de recepción. Si de alguna manera la llamada a libpq permite que el atacante acceda a ese mensaje, se consigue una divulgación de los bytes objeto del desbordamiento. No se ha confirmado ni descartado la factibilidad de ataques destinados a provocar una caída de sistema o la presencia de información confidencial importante en los bytes divulgados.
El proyecto PostgreSQL agradece a Jacob Champion 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 15, es posible que algunos de ellos afecten también a otras versiones de PostgreSQL.
Esta versión incluye:
- Corrección para que las tablas particionadas actualicen correctamente las columnas
GENERATED
en las tablas hijas cuando la columnaGENERATED
no exista en la tabla padre o cuando la columna generada por la tabla hija tenga dependencias diferentes de las de la tabla padre. - Varias correcciones para el comando
MERGE
. - Se permite que una consulta
WITH RECURSIVE ... CYCLE
acceda a su columna de salida SET. - Corrección de un problema con las inserciones masivas en tablas externas que podía dar lugar a incoherencias lógicas. Por ejemplo, un trigger
BEFORE ROW
podría no procesar registros que deberían estar disponibles. - Se rechaza el uso de variables no definidas en las comprobaciones de existencia de
jsonpath
. - Corrección para las subscripciones
jsonb
que provienen directamente de una columna text de una tabla. - Se aceptan los valores actualizados de
checkpoint_completion_target
al recargar. - Registro del timestamp final correcto en modo
recovery_target_xid
. - Corrección de un problema que impedía el uso de listas de columnas superiores a 100 al usar la replicación lógica.
- Prevención del fallo de «longitud de tupla incorrecta» al final de
VACUUM
. - Evita el commit inmediato tras
ANALYZE
al usar la canalización de consultas. - Varias correcciones en el planificador de consultas, incluida una que ofrece más oportunidades para utilizar la memoización con partitionwise joins.
- Corrección que permite gestionar de forma correcta la recopilación de estadísticas cuando una relación cambia de tipo (por ejemplo, cuando una tabla se convierte en una vista).
- Asegura que las consultas de búsqueda de texto completo puedan cancelarse al realizar coincidencias de frases.
- Corrección de bloqueo mutuo (deadlock) entre
DROP DATABASE
y el proceso del trabajador (worker) de replicación lógica. - Corrección de una pequeña fuga de memoria en la duración de la sesión cuando
CREATE SUBSCRIPTION
no logra establecer la conexión. - Mejora en el rendimiento de réplicas con
hot_standby
activado que están procesando consultasSELECT
. - Varias correcciones para la decodificación lógica que mejoran su estabilidad y la gestión del sobredimensionamiento.
- Corrección del plugin de replicación lógica por defecto,
pgoutput
, para que no envíe columnas que no aparezcan en la lista de columnas de replicación de una tabla. - Corrección de la posible corrupción de archivos de mapa de tablespace de gran tamaño en
pg_basebackup
. - Eliminación de un aviso inofensivo de
pg_dump
en modo--if-exists
que aparecía cuando en el esquemapublic
figuraba un propietario no predeterminado. - Corrección de los comandos
psql
,\sf
y\ef
para que puedan manejar funciones del lenguaje SQL que contengan cuerpos de función SQL estándar (por ejemplo,BEGIN ATOMIC
). - Corrección del completado por tabulación de
ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA
. - Actualización de la extensión
pageinspect
para que marque sus funciones de acceso a disco comoPARALLEL RESTRICTED
. - Corrección de la extensión
seg
para impedir su bloqueo o la impresión de datos anómalos cuando el número introducido supera los 127 dígitos..
Esta versión también actualiza los archivos de datos de zonas horarias a la versión tzdata 2022g para reflejar los cambios de la ley DST en Groenlandia y México, así como correcciones históricas para el Norte de Canadá, Colombia y Singapur. En particular, una nueva zona horaria, America/Ciudad_Juarez, ha sido separada de America/Ojinaga.
Para conocer la lista completa de cambios disponibles, consulten las notas de la versión.
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 los 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
- Descargas
- Notas de la versión
- Seguridad
- Política de versiones
- Anuncio del lanzamiento de PostgreSQL 15
- Sigan @postgresql en Twitter