Lanzamiento de PostgreSQL 14.3, 13.7, 12.11, 11.16 y 10.21
El Grupo Global de Desarrollo de PostgreSQL ha lanzado una actualización para todas las versiones soportadas de nuestro sistema de base de datos, entre ellas la 14.3, 13.7, 12.11, 11.16 y 10.21. Esta versión versión corrige más de 50 errores reportados en los últimos tres meses.
Los índices GiST de columnas que utilicen el tipo de datos ltree, deberán reindexarsetras la actualización.
Para la lista completa de cambios, revisen las notas de la versión.
Problemas de seguridad
CVE-2022-1552: Autovacuum, REINDEX y otros eluden el sandbox para las «operaciones restringidas de seguridad».
Versiones afectadas: 10 – 14. El equipo de seguridad no suele realizar pruebas en versiones no soportadas, pero se trata de un problema antiguo.
Los intentos de Autovacuum, REINDEX
, CREATE INDEX
, REFRESH MATERIALIZED VIEW
, CLUSTER
, y pg_amcheck
de funcionar de forma segura cuando un usuario con privilegios mantiene los objetos de otro usuario eran insuficientes. Estos comandos activaban las protecciones pertinentes de forma tardía o no las activaban en absoluto. Un atacante que tuviera permiso para crear objetos no temporales en al menos un esquema podía ejecutar funciones SQL arbitrarias bajo una identidad de superusuario.
Si bien una actualización inmediata de PostgreSQL constituye la mejor solución para la mayoría de los usuarios, en caso de no poder realizarla es posible evitar la vulnerabilidad desactivando autovacuum, evitando la ejecución manual de los comandos antes mencionados así como la restauración a partir de la salida del comando pg_dump
. Sin embargo, el rendimiento puede reducirse rápidamente utilizando esta solución. Por otro lado, VACUUM
es seguro y todos los comandos funcionan correctamente cuando un usuario de confianza es el propietario del objeto de destino.
El proyecto PostgreSQL agradece a Alexander Lakhin por reportar este problema.
Notificación de EOL para 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.
Corrección de errores y mejoras
Esta actualización corrige más de 50 errores reportados en los últimos meses. Aunque los problemas que se enumeran a continuación afectan a PostgreSQL 14, es posible que algunos de ellos afecten tambien a otras versiones soportadas de PostgreSQL.
Se incluyen en esta versión:
- Solución de un problema que podía provocar la corrupción de los índices GiST en columnas
ltree
. Tras la actualización, deberá realizarse un reindex de los índices GiST en las columnasltree
. - Los nombres de columnas en las tuplas producidas por una variable de fila completa (por ejemplo,
tbl.*
) que se encuentran fuera del nivel superior de una listaSELECT
ahora se asocian siempre con los del tipo compuesto con nombre asociado, siempre que exista. Las notas de la versión ofrecen una solución para los usuarios que dependen del comportamiento anterior. - Corrección del redondeo incorrecto al extraer los valores de época de los tipos
interval
. - Prevención de problemas al invocar
pg_stat_get_replication_slot(NULL)
. - Corrección de la salida incorrecta para los tipos
timestamptz
ytimetz
entable_to_xmlschema()
. - Corrección de errores relacionados con un problema del planificador que afectaba a las consultas remotas asíncronas.
- Corrección de la falla del planificador cuando una consulta que utiliza las funciones
SEARCH
oCYCLE
contiene un nombre de expresión de tabla común (WITH
) duplicado. - Corrección de
ALTER FUNCTION
para que admita, en el mismo comando, el cambio de la propiedad de paralelismo de una función y su lista de variablesSET
. - Corrección de la ordenación incorrecta de los registros de una tabla al utilizar
CLUSTER
en un índice cuya clave principal es una expresión. - Prevención de la pérdida de datos al producirse un fallo del sistema poco después de la creación de un índice GiST ordenado.
- Corrección del riesgo de fallas de bloqueo durante la eliminación de un índice particionado.
- Corrección de la condición de carrera entre
DROP TABLESPACE
y el checkpointing que podía fallar al eliminar todos los archivos muertos del directorio del tablespace. - Corrección de un posible problema en la recuperación tras una caída del sistema, cuando el comando
TRUNCATE
se superpone a un checkpoint. - Se vuelve a permitir el uso de
_
como primer carácter en el nombre de un parámetro de configuración personalizado. - Corrección del fallo
PANIC: xlog flush request is not satisfied
durante la promoción del standby si falta un registro de continuación del WAL. - Corrección del posible bloqueo automático en la gestión de conflictos en modo hot standby.
- Asegura que los trabajadores (workers) utilizados en la replicación lógica pueden ser reiniciados cuando el servidor se aproxima al límite de
max_sync_workers_per_subscription
. - Se impide la ejecución de funciones SPI durante la compilación de funciones PL/Perl.
- libpq ahora acepta archivos de claves privadas SSL pertenecientes al usuario root, de acuerdo con las reglas que el servidor ha utilizado desde la versión 9.6.
- Se vuelve a permitir el uso de patrones
basededatos.esquema.tabla
enpsql
,pg_dump
, ypg_amcheck
. - Varias correcciones en
pageinspect
para mejorar la estabilidad general. - Desactivación de la inserción en lote en
postgres_fdw
cuando existen triggers BEFORE INSERT … FOR EACH ROW en la tabla foránea. - Actualización del código JIT para que funcione con LLVM 14.
Esta actualización también contiene la versión tzdata 2022a para los cambios de la ley DST en Palestina, además de correcciones históricas para Chile y Ucrania.
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, 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.
Sin embargo, si tienen algún índice GiST en columnas que utilicen el tipo de datos ltree, tendrán que reindexarlos tras la actualización.
Si anteriormente se 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.