Lanzamiento de PostgreSQL 13.3, 12.7, 11.12, 10.17 y 9.6.22
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 13.3, 12.7, 11.12, 10.17 y 9.6.22. Con este lanzamiento se solucionan tres vulnerabilidades de seguridad y se corrigen más de 45 errores reportados en los últimos tres meses.
Para consultar la lista completa de los cambios, revisa las notas de la versión.
Problemas de seguridad
CVE-2021-32027: Desbordamiento de búfer producido por un desbordamiento de enteros en los cálculos de subscripción del array.
Versiones afectadas: 9.6 – 13. El equipo de seguridad no suele realizar pruebas en versiones no soportadas, pero se trata de un problema antiguo.
Al modificar ciertos valores de array SQL, la falta de comprobaciones de límites permite a los usuarios autenticados de la base de datos escribir bytes de forma arbitraria en una amplia zona de la memoria del servidor.
El proyecto PostgreSQL agradece a Tom Lane por reportar este problema.
CVE-2021-32028: Divulgación de memoria en INSERT ... ON CONFLICT ... DO UPDATE
Versiones afectadas: 9.6 – 13. El equipo de seguridad no suele realizar pruebas en versiones no soportadas. Esta funcionalidad apareció por primera vez en 9.5.
Utilizando un comando INSERT ... ON CONFLICT ... DO UPDATE en una tabla creada de cierta forma a propósito, un atacante puede leer de forma arbitraria bytes de memoria del servidor. La configuración por defecto permite a cualquier usuario autenticado de la base de datos crear objetos requeridos y completar sin problema un ataque. Un usuario que carezca de los privilegios CREATE y TEMPORARY en todas las bases de datos y del privilegio CREATE en todos los esquemas no puede realizar dicho ataque.
El proyecto PostgreSQL agradece a Andres Freund por reportar este problema.
CVE-2021-32029: Divulgación de memoria en tablas particionadas UPDATE ... RETURNING
Versiones afectadas: 11 – 13
Utilizando intencionalmente el comando UPDATE ... RETURNING en una tabla particionada creada a propósito, un atacante puede leer de forma arbitraria bytes de memoria del servidor. La configuración por defecto permite a cualquier usuario autenticado de la base de datos crear objetos requeridos y completar sin problema un ataque. Un usuario que carezca de los privilegios CREATE y TEMPORARY en todas las bases de datos y del privilegio CREATE en todos los esquemas no puede realizar dicho ataque.
El proyecto PostgreSQL agradece a Tom Lane por reportar este problema.
Corrección de errores y mejoras
Esta actualización corrige más de 45 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:
- Corrige el cálculo potencialmente incorrecto en los resultados de 
UPDATE ... RETURNINGpara actualizaciones unidas entre particiones. - Corrige 
ALTER TABLE ... ALTER CONSTRAINTal usar restricciones de clave foránea en tablas particionadas. No pudiendo ajustar las propiedadesDEFERRABLEy/oINITIALLY DEFERREDde las restricciones y triggers en las particiones de hoja, el comando ocasionaba un comportamiento inesperado. Tras actualizar a esta versión, es posible ejecutar el comandoALTER TABLE ... ALTER CONSTRAINTpara solucionar cualquier error en tablas particionadas. - Asegura que, al adjuntar una tabla hija con 
ALTER TABLE ... INHERIT, las columnas generadas en la tabla padre sean generadas de forma idéntica en la tabla hija. - Prohíbe marcar una columna de identidad como 
NULL. - Permite 
ALTER ROLE ... SET/ALTER DATABASE ... SETpara definir los parámetros role, session_authorization y temp_buffers. - Asegura que 
REINDEX CONCURRENTLYpreserve cualquier objetivo estadístico establecido en el índice. - Corrige un problema por el que, en algunos casos, al guardar registros en los triggers 
AFTER, se producían caídas del sistema. - Corrige la forma en que 
to_char()maneja los códigos de formato de mes en números romanos con intervalos negativos. - Corrige el uso de un valor no inicializado al procesar un cuantificador 
\{m,n\}en una expresión regular en modo BRE. - Corrige los errores del planificador «could not find pathkey item to sort» que se producían en ciertas situaciones cuando la clave de ordenamiento suponía una función de agregado o de ventana deslizante.
 - Corrige un problema con los recorridos de índices BRIN por mapas de bits que podía producir el error «could not open file».
 - Corrige las respuestas potencialmente erróneas de las búsquedas en el índice GIN 
tsvectorcuando existen múltiples registros coincidentes. - Corrige la funcionalidad de 
COMMIT AND CHAINtanto en el servidor como enpsql. - Evita el cambio incorrecto de timeline al recuperar transacciones de dos fases no comprometidas desde el WAL, el cual podría producir problemas de consistencia y la imposibilidad de reiniciar el servidor.
 - Asegura que 
wal_sync_methodesté configurado comofdatasyncpor defecto en las nuevas versiones de FreeBSD. - Desactiva el parámetro 
vacuum_cleanup_index_scale_factory la opción de almacenamiento. - Corrige varias fugas de memoria en el servidor, incluyendo una en el proceso de inicialización de los parámetros SSL/TLS.
 - Restablece el comportamiento anterior de 
\connect service=XYZapsql, impidiendo que las variables de entorno (por ejemplo,PGPORT) sustituyan las entradas en el archivo de servicio. - Corrige la forma en que 
pg_dumpmaneja las columnas generadas en las tablas particionadas. - Añade comprobaciones adicionales a 
pg_upgradepara las tablas de usuario que contienen tipos de datos no actualizables. - En Windows, 
initdbimprime ahora las instrucciones sobre cómo iniciar el servidor conpg_ctlutilizando barras inversas de separación. - Corrige 
pg_waldumppara que, al generar las estadísticas por registro, cuente correctamente los registros XACT. 
Para una lista completa de los cambios disponibles, consulta las notas de la versión.
Notificación de EOL para PostgreSQL 9.6
PostgreSQL 9.6 dejará de recibir correcciones el 11 de noviembre de 2021. Si estás utilizando PostgreSQL 9.6 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.
				
						
		
