¡Lanzamiento de PostgreSQL 13.2, 12.6, 11.11, 10.16, 9.6.21 y 9.5.25!
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 13.2, 12.6, 11.11, 10.16, 9.6.21 y 9.5.25. Con este lanzamiento se solucionan dos vulnerabilidades de seguridad y se corrigen más de 80 errores reportados en los últimos tres meses.
Además, esta es la versión final de PostgreSQL 9.5. Si estás utilizando PostgreSQL 9.5 en un entorno de producción, te sugerimos hacer planes para actualizar a una versión superior.
Para consultar la lista completa de los cambios, por favor, revisa las notas de la versión.
Problemas de seguridad
CVE-2021-3393: Errores que generan fugas de información en los valores de las columnas denegadas debido a violaciones en las restricciones de partición.
Versiones afectadas: 11 – 13.
Un usuario que disponga de privilegios UPDATE
para una tabla particionada, aunque carezca de privilegios SELECT
para alguna columna, puede tener acceso a valores de columnas denegadas a través de un mensaje de error. Se trata de una vulnerabilidad parecida a la CVE-2014-8161, aunque las condiciones para explotarla son más raras.
El proyecto PostgreSQL agradece a Heikki Linnakangas por reportar este problema.
CVE-2021-20229: El privilegio SELECT para una sola columna permite consultar todas las columnas
Versiones afectadas: 13.
Un usuario que tenga un privilegio SELECT
para una determinada columna puede elaborar una consulta especial que devuelva todas las columnas de la tabla.
Además, una vista almacenada que utilice privilegios a nivel de columna presentará bitmaps incompletos sobre el uso de la columna. En las instalaciones que recurren a permisos a nivel de columna como medida de seguridad, se recomienda ejecutar CREATE OR REPLACE
en todas las vistas definidas por el usuario con el fin de forzarlas a un nuevo análisis.
El proyecto PostgreSQL agradece a Sven Klemm 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 algunos de estos afectan únicamente a la versión 13, también podrían aplicarse a otras versiones compatibles.
A continuación se enumeran algunas de estas correcciones:
- Corrección de un problema con los índices GiST en el que las inserciones concurrentes podían generar un índice corrupto cuyas entradas se colocaban en páginas incorrectas. Es necesario realizar un
REINDEX
de los índices GiST afectados. - Corrección de
CREATE INDEX CONCURRENTLY
para asegurar que las filas de las transacciones concurrentes preparadas estén incluidas en el índice. Las instalaciones que han habilitado las transacciones preparadas deben realizar unREINDEX
de los índices creados de forma concurrente. - Corrección de posibles resultados de consulta incorrectos al transferir una agregación hash al disco.
- Corrección de un caso límite en el ordenamiento incremental que podía conducir a un ordenamiento incorrecto de los resultados o al mensaje de error «retrieved too many tuples in a bounded sort«.
- Impide el bloqueo al ejecutar una sentencia
CALL
oDO
que realice un rollback de la transacción a través de un protocolo de consulta extendido, como el de las sentencias preparadas. - Corrección de una falla que se producía cuando un procedimiento PL/pgSQL utilizaba
CALL
en otro procedimiento que contenía parámetrosOUT
que ejecutaban unCOMMIT
o unROLLBACK
. - Se han eliminado los errores de los triggers
BEFORE UPDATE
en las tablas particionadas para las restricciones que ya no son aplicables. - Corrección de varias consultas con joins que podían generar mensajes de error como «no relation entry for relid N» o «failed to build any N-way joins«.
- Al intentar paralelizar los ordenamientos, serán ignoradas las funciones restringidas o de devolución de conjuntos incluidas en las expresiones
ORDER BY
. - Corrección de
ALTER DEFAULT PRIVILEGES
para manejar los argumentos duplicados de forma segura. - Corrección de varios inconvenientes que se producían al configurar
wal_level
con el valorminimal
, incluyendo la reescritura de tablas dentro de una transacción. - Varias correcciones para
CREATE TABLE LIKE
. - Asegura que el espacio de disco asignado a una relación que ha sido eliminada (por ejemplo, una tabla) se libere rápidamente al confirmarse la transacción.
- Corrección en los reportes de progreso para
CLUSTER
. - Corrección en el manejo de los caracteres multibyte con barra invertida en
COPY FROM
. - Corrección de las condiciones de carrera introducidas recientemente en el manejo de la cola
LISTEN/NOTIFY
. - Permite que el operador de concatenación jsonb (
||
) maneje todas las combinaciones de tipos de datos JSON. - Corrección de la lógica de lectura de WAL que permite que los standbys manejen correctamente los cambios de timeline. Este problema podría presentarse con mensajes de error como «requested WAL segment has already been removed«.
- Corrección de varias fugas de memoria en el proceso de walsender relativas a la decodificación lógica y a la replicación.
- Asegura que un valor no vacío de
krb_server_keyfile
prevalezca siempre sobre cualquier configuración deKRB5_KTNAME
en el entorno del servidor - Varias correcciones para el soporte de cifrado GSS.
- Asegura que el comando
\connect
admita el uso de una contraseña en el argumentoconnection_string
. - Corrección de varios errores relativos al comando
\help
. - Varias correcciones para
pg_dump
. - Asegura que
pg_rewind
incluya todos los WAL al rebobinar un servidor standby. - Corrección de una fuga de memoria en
contrib/auto_explain
. - Asegura que todas las conexiones
postgres_fdw
estén cerradas si el mapeo de usuario o el objeto de servidor externo del que dependen son eliminados. - Corrección en la compilación JIT para que sea compatible con LLVM 11 y LLVM 12.
Esta actualización incluye también la versión tzdata 2021a relativa a los cambios en la normativa DST de Rusia (zona de Volgogrado) y Sudán del Sur, además de correcciones históricas para Australia, Bahamas, Belice, Bermudas, Ghana, Israel, Kenia, Nigeria, Palestina, Seychelles y Vanuatu.
En especial, se ha corregido la zona Australia/Currie que es ahora idéntica a la zona Australia/Hobart.
Para consultar la lista completa de los cambios disponibles, consulta las notas de la versión.
PostgreSQL 9.5 llegó a su EOL
Esta es la versión final de PostgreSQL 9.5. Si estás utilizando PostgreSQL 9.5 en un entorno de producción, te sugerimos hacer planes para actualizar a una versión más reciente y soportada de PostgreSQL. Para más información consulta nuestra política de versiones.
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. Para más detalles consulta las notas de las versiones anteriores.
Para más detalles, véanse las notas de la versión.
NOTA: PostgreSQL 9.6 dejará de recibir correcciones el 11 de noviembre de 2021. Para más información, véase nuestra política de versiones.
Enlaces