Lanzamiento de PostgreSQL 14.5, 13.8, 12.12, 11.17, 10.22 y 15 Beta 3
El Grupo Global de Desarrollo de PostgreSQL ha lanzado una actualización para todas las versiones soportadas de PostgreSQL, entre ellas la 14.5, 13.8, 12.12, 11.17 y 10.22, así como la tercera versión beta de PostgreSQL 15. Esta versión corrige más de 40 errores reportados en los últimos tres meses.
Para la lista completa de cambios, revisen las notas de la versión.
Se acerca la EOL de PostgreSQL 10
PostgreSQL 10 dejará de recibir correcciones el 10 de noviembre de 2022. Si están ejecutando PostgreSQL 10 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-2022-2625: Scripts de extensiones reemplazan objetos que no pertenecen a dichas extensiones.
Versiones afectadas: 10 – 14. El equipo de seguridad no suele realizar pruebas en versiones no soportadas, pero se trata de un problema antiguo.
Algunas extensiones utilizan los comandos CREATE OR REPLACE
o CREATE IF NOT EXISTS
. Sin embargo, ciertas extensiones no siguen la regla documentada de apuntar únicamente a objetos conocidos como pertenecientes a la extensión. Para que se produzca un ataque se requieren permisos para crear objetos no temporales en al menos un esquema, la capacidad de inducir o esperar a que un administrador cree o actualice una extensión afectada de dicho esquema, y la capacidad de inducir o esperar a que una víctima utilice el objeto afectado en CREATE OR REPLACE
o CREATE IF NOT EXISTS
.
Si se cumplen los tres prerrequisitos, el atacante podrá ejecutar código arbitrario utilizando el rol de víctima, el cual podría ser el de superusuario. Las extensiones afectadas conocidas incluyen tanto las que están integradas en el paquete de PostgreSQL como las que no lo están. Puesto que PostgreSQL bloquea este ataque en el servidor principal, no es necesario modificar las diferentes extensiones.
El proyecto PostgreSQL agradece a Sven Klemm por reportar este problema.
Nota sobre PostgreSQL 15 Beta
Con este lanzamiento se publica la tercera versión beta de PostgreSQL 15, lo cual acerca aún más a la comunidad a la disponibilidad general prevista aproximadamente para el final del tercer trimestre.
De acuerdo con el espíritu de la comunidad de código abierto de PostgreSQL, recomendamos encarecidamente que prueben las nuevas características de PostgreSQL 15 en sus sistemas. Esto nos ayudará a eliminar errores u otros posibles problemas. Aunque no recomendamos ejecutar PostgreSQL 15 Beta 3 en un entorno de producción, les invitamos a encontrar formas de ejecutar esta versión beta con cargas de trabajo típicas de sus aplicaciones.
Sus pruebas y comentarios ayudarán a la comunidad a asegurar que PostgreSQL 15 cumpla con nuestros estándares de entrega de una versión estable y confiable de la base de datos relacional de código abierto más avanzada del mundo. Por favor, lean más sobre nuestro proceso de pruebas beta y cómo pueden contribuir en:
https://www.postgresql.org/developer/beta/
Para más información sobre todas las características y cambios en PostgreSQL 15, consulten las notas de la versión en:
https://www.postgresql.org/docs/15/release-15.html
Corrección de errores y mejoras
Esta actualización corrige más de 40 errores reportados en los últimos meses. Aunque los problemas enumerados a continuación afectan a PostgreSQL 14, es posible que algunos de ellos afecten también a otras versiones soportadas de PostgreSQL.
En esta versión:
- Se ha corregido la repetición de los WAL (registros de escritura anticipada) de
CREATE DATABASE
en los servidores standby en caso de que falte un directorio de tablespace. - Se ha añadido soporte para tablespaces que sean directorios simples en lugar de enlaces simbólicos a otros directorios.
- Se han corregido las comprobaciones de permisos en
CREATE INDEX
para el uso de permisos de usuario. Esto soluciona los escenarios de volcado/recuperación dañados basados en el comportamiento anterior a la corrección de CVE-2022-1552. - En el protocolo de consulta extendido, se fuerza un commit inmediato tras
CREATE DATABASE
y otros comandos que no pueden ejecutarse en un bloque de transacción. - Se ha corregido una condición de carrera relacionada con la comprobación de visibilidad de las transacciones que podía producirse con mayor probabilidad al utilizar la replicación sincrónica.
- Se ha corregido un código de comprobación de permisos incorrecto para estadísticas extendidas.
- Se ha corregido el mecanismo de estadísticas extendidas para que pueda manejar estadísticas de tipo MVC (valor más común) con expresiones de valor booleano.
- Se impide el volcado del core del planificador con cláusulas de tipo constante
= ANY(array)
al existir estadísticas extendidas de tipo MCV en la variable del array. - Se permite la cancelación de
ANALYZE
durante el cálculo de estadísticas extendidas. - Se ha corregido
ALTER TABLE ... ENABLE/DISABLE TRIGGER
para controlar la recursividad de los triggers en tablas particionadas. - Se rechazan expresiones y funciones
ROW()
enFROM
que contengan más de 1600 columnas. - Se ha corregido una fuga de memoria en los suscriptores de la replicación lógica.
- Se han corregido las comprobaciones de identidad de réplica en la replicación lógica si la tabla de destino está particionada.
- Se ejecutará una limpieza tras producirse errores a la hora de realizar un commit con
SPI_commit()
, en lugar de esperar que lo hagan los usuarios. Se incluye una corrección para el mismo escenario en PL/Python, el cual había reportado fallas en Python 3.11 y fugas de memoria en versiones anteriores de Python 3. - Se han realizado mejoras en el manejo de estados de inactividad en modalidad pipeline en
libpq
. - Al ejecutar el comando
psql
\watch
, se repite una nueva línea tras la cancelación con control-C. - Se ha corregido
pg_upgrade
para detectar usos no actualizables de funciones que aceptan parámetrosanyarray
. - Se han introducido varias correcciones en
postgres_fdw
que incluyen la prevención de inserciones por lotes al existir restriccionesWITH CHECK OPTION
.
Para la lista completa de cambios realizados, consulten las notas de la versión.
Actualización
Todas las actualizaciones de PostgreSQL son acumulativas. Al igual que en otras actualizaciones menores, no es necesario realizar un dump y volver a cargar la base de datos. Tampoco es necesario el uso de pg_upgrade
para instalar esta actualización. Es suficiente con detener PostgreSQL y actualizar los binarios.
Si anteriormente se omitieron una o más actualizaciones, podría ser necesario seguir algunos pasos posteriores a la actualización. Encontrarán detalles adicionales en las notas de las versiones anteriores.
Para más detalles, véanse las notas de la versión.
Actualizar a PostgreSQL 15 Beta 3
Para actualizar a PostgreSQL 15 Beta 3 desde una versión previa de PostgreSQL, deberán utilizar una estrategia similar a la empleada para la actualización entre versiones principales de PostgreSQL (por ejemplo, pg_upgrade
o pg_dump
/ pg_restore
). Para más información, vean la documentación, en la sección sobre actualizaciones.
Pruebas de errores y compatibilidad
La estabilidad de cada versión de PostgreSQL depende en gran medida de que ustedes, la comunidad, prueben la próxima versión con sus cargas de trabajo y herramientas de prueba para detectar errores y regresiones antes del lanzamiento oficial de PostgreSQL 15. Dado que se trata de una versión beta, es posible que se produzcan cambios en los comportamientos de la base de datos, los detalles de las funciones y las API. Sus impresiones y pruebas ayudarán a determinar los ajustes finales de las nuevas funciones, así que les rogamos que la prueben lo antes posible. La calidad de las pruebas de los usuarios contribuirá a definir el momento en el que podamos lanzar la versión final.
Una lista de problemas abiertos está disponible al público en el wiki de PostgreSQL. Pueden reportar errores usando el siguiente formulario en el sitio web de PostgreSQL:
https://www.postgresql.org/account/submitbug/
Enlaces
- Descargas
- Notas de la versión
- Seguridad
- Política de versiones
- Información sobre las pruebas beta
- Notas de la versión beta de PostgreSQL 15
- Problemas abiertos de PostgreSQL 15
- Sígannos en Twitter @postgresql