Blog

PostgreSQL

Lanzamiento de PostgreSQL 15.3, 14.8, 13.11, 12.15, y 11.20

El Grupo Global de Desarrollo de PostgreSQL ha lanzado una actualización para todas las versiones soportadas de PostgreSQL, incluyendo la 15.3, 14.8, 13.11, 12.15, y 11.20. Esta versión corrige dos vulnerabilidades de seguridad y más de 80 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 11

PostgreSQL 11 dejará de recibir correcciones el 9 de noviembre de 2023. Si están ejecutando PostgreSQL 11 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-2023-2454: CREATE SCHEMA ... schema_element invalida los cambios de protección de search_path.

Versiones afectadas: 11 – 15. El equipo de seguridad no suele realizar pruebas en versiones no soportadas, pero se trata de un problema antiguo.

Este permitía a un atacante con privilegios CREATE a nivel de base de datos ejecutar código arbitrario como el superusuario de inicialización. Los propietarios de bases de datos disponen de ese privilegio por defecto, el cual puede extenderse a otros usuarios mediante permisos explícitos.

El proyecto PostgreSQL agradece a Alexander Lakhin por reportar este problema.

CVE-2023-2455: Las políticas de seguridad a nivel de registros ignoran los cambios de ID de usuario tras un inlining.

Versiones afectadas: 11 – 15. El equipo de seguridad no suele realizar pruebas en versiones no soportadas, pero se trata de un problema antiguo.

Aunque CVE-2016-2193 solucionó la mayor parte de la interacción entre la seguridad a nivel de registros y los cambios en el ID de usuario, se omitió un escenario que implicaba la incrustación en línea (inlining) de funciones. Esto podría provocar la aplicación de políticas incorrectas en los casos en que se utilizan políticas específicas de rol y una determinada consulta que ha sido planificada bajo cierto rol y luego se ejecute luego bajo otros roles. Este escenario puede darse al utilizar funciones SECURITY DEFINER o cuando un usuario y una consulta comunes, tras una planificación inicial, son reutilizados en múltiples SET ROLEs. La aplicación de una política incorrecta puede permitir a un usuario realizar lecturas y modificaciones no permitidas. Este problema sólo afecta a bases de datos en las que se haya utilizado CREATE POLICY para definir una política de seguridad a nivel de registros.

El proyecto PostgreSQL agradece a Wolfgang Walther por reportar este problema.

Corrección de errores y mejoras

Esta actualización corrige más de 80 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:

  • Varias correcciones relativas a CREATE DATABASE  al utilizar el parámetro STRATEGY = WAL_LOG, incluida una posible corrupción que podía ocasionar la pérdida de las modificaciones de una plantilla o base de datos de origen.
  • Corrección de caída del sistema al utilizar CREATE SCHEMA AUTHORIZATION.
  • Varias correcciones para MERGE.
  • Varias correcciones para triggers en tablas particionadas.
  • Impide la modificación de tipos compuestos almacenados en índices.
  • Asegura que al realizar un COPY TO desde una tabla padre, con seguridad a nivel de registros activada, no se copie ningún registro de las tablas hijas.
  • Ajuste en la lógica de clasificación de caracteres relacionada con la búsqueda de texto para detectar de forma correcta si la configuración regional predominante es C cuando la intercalación por defecto de una base de datos utiliza el proveedor ICU.
  • Vuelve a permitir la notación exponencial en los campos de intervalo ISO-8601.
  • Mejoras en el reporte de errores para varios literales de cadena JSON inválidos.
  • Corrección del problema de corrupción de datos provocado por un valor de vacuum_defer_cleanup_age superior al xid de 64 bits en uso.
  • Varias correcciones en el analizador y planificador de consultas, incluida una mejor detección de agregados anidados de forma incorrecta.
  • Corrección del error de eliminación de particiones con las condiciones booleanas IS NOT TRUE y IS NOT FALSE. Antes de esto, las particiones NULL eran eliminadas de forma accidental.
  • Corrección de fugas de memoria en la ejecución del plan de memoización.
  • Corrección de la fuga en el contador de referencias de búfer al realizar inserciones por lotes en tablas foráneas que utilizan particiones.
  • Restablece la compatibilidad para tiempos inferiores a milisegundos en la configuración de vacuum_cost_delay.
  • Varias correcciones para vistas y reglas.
  • Evita el trabajo innecesario al escanear un índice BRIN de varias columnas con múltiples claves de escaneo.
  • Ignora las columnas eliminadas y las columnas generadas durante la replicación lógica de una acción UPDATE o DELETE.
  • Varias correcciones en los nombres y disponibilidad de los eventos en espera.
  • Compatibilidad con certificados RSA-PSS vinculados a canales SCRAM-SHA-256. Esta función requiere la compilación con OpenSSL 1.1.1 o posterior.
  • Evita condiciones de carrera con el rastreo de ID de procesos en Windows.
  • Soluciona la fuga de memoria en sesiones en las que se emplean bloques DO de PL/pgSQL con expresiones para conversión de tipos de datos.
  • Refuerza las comprobaciones de dimensionalidad de matrices de PL/Perl y PL/Python al convertir estructuras de listas en matrices SQL multidimensionales.
  • Corrige pg_dump para que puedan restaurarse de forma correcta las tablas particionadas con particiones hash en columnas de tipo enumerado.
  • Corrección para pg_trgm, en el que una expresión regular insatisfactoria podía provocar una caída del sistema al utilizar un índice GiST o GIN.
  • Limita el uso de memoria de pg_get_wal_records_info() en pg_walinspect.

Este lanzamiento también actualiza los archivos de datos de zonas horarias a la versión 2023c de tzdata para adaptarlos a los cambios de la ley DST en Egipto, Groenlandia, Marruecos y Palestina. Para las zonas horarias de Moscú, Europa/Kirov y Europa/Volgogrado se utilizan ahora las abreviaturas MSK/MSD en lugar de las abreviaturas numéricas, por coherencia con las demás zonas horarias de Moscú. Además, la zona America/Yellowknife ya no es distinta de la zona America/Edmonton; esto afecta a algunos timestamps anteriores al año 1948 en esa zona.

Para la lista completa de los 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

Si desean proponer alguna corrección o hacer sugerencias en relación con este anuncio de lanzamiento, envíenlas a la lista de correo pública pgsql-www@lists.postgresql.org public.

Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.