El equipo de desarrollo global de PostgreSQL ha lanzado una actualización para todas las versiones compatibles actualmente : 15.4, 14.9, 13.12, 12.16 y 11.21, así como la tercera versión beta de PostgreSQL 16. Esta versión corrige dos agujeros de seguridad y corrige más de 40 errores informados en los últimos meses.
Si usa índices BRIN para buscar valores, deberá volver a indexarlosNULL
después de actualizar a esta versión . En PostgreSQL 12 y versiones posteriores, puede evitar el bloqueo de escrituras en los índices y tablas afectados con, por ejemplo:REINDEX CONCURRENTLY
REINDEX INDEX CONCURRENTLY your_index_name;
Para obtener una lista completa de los cambios, consulte las notas de la versión .
Aviso de EOL de PostgreSQL 11
PostgreSQL 11 dejará de recibir correcciones el 9 de noviembre de 2023. Si está ejecutando PostgreSQL 11 en producción, se recomienda que planee actualizar a una versión compatible más reciente de PostgreSQL. Consulte Política de control de versiones para obtener más información.
Pregunta de seguridad
CVE-2023-39417 : los scripts extendidos en las referencias @substitutions@
permiten la inyección de SQL.
Versiones vulnerables compatibles: 11 - 15. Los equipos de seguridad no suelen probar versiones no compatibles, pero este problema existe desde hace mucho tiempo.
Las secuencias de comandos de extensión son vulnerables si se utilizan dentro de construcciones de cotización ( citas en dólares, ''
o ) ""
. Existen vulnerabilidades para las extensiones que no están empaquetadas. De hecho, hay agujeros en los ejemplos de documentación y extensiones no incluidas. Por lo tanto, un requisito previo para el ataque es que el administrador instale el archivo de extensión vulnerable, confiable y no incluido. Bajo este requisito previo, un atacante con privilegios a nivel de base de datos puede ejecutar código arbitrario como un superusuario de arranque. PostgreSQL evitará este ataque en el servidor central, por lo que no es necesario modificar extensiones individuales. @extowner@
@extschema@
@extschema:...@
CREATE
CVE-2023-39418 : MERGE
No se pueden aplicar UPDATE
o SELECT
aplicar políticas de seguridad.
Versiones compatibles y vulnerables: 15.
PostgreSQL 15 introdujo MERGE
comandos que fallan al probar nuevas filas contra la política de seguridad de filas definida para UPDATE
y . SELECT
Los usuarios pueden almacenar ciertas filas si UPDATE
una SELECT
política las prohíbe, pero INSERT
la política no lo hace. Las consecuencias posteriores dependen de la aplicación. Esto solo afecta CREATE POLICY
a las bases de datos utilizadas para definir políticas de seguridad de filas.
Corrección de errores y mejoras
Los problemas enumerados a continuación afectan a PostgreSQL 15, algunos de los cuales también pueden afectar a otras versiones compatibles de PostgreSQL.
- Manejo fijo
NULL
de valores en índices BRIN . Esta reparación no se aplica a los índices BRIN existentes: los usuarios deberán ejecutarREINDEX
para reparar los índices BRIN que se utilizan para buscar valores NULL. - Evite dejar una base de datos corrupta cuando se interrumpe DROP DATABASE.
- Varias correcciones para índices particionados.
- Corrija el error si la extensión contiene objetos fuera del esquema de extensión
ALTER EXTENSION ... SET SCHEMA
. - Solucione el seguimiento de dependencias para los métodos de acceso a tablas.
- No utilice índices parcialmente únicos en el planificador para demostrar la unicidad.
- Maneje correctamente las expresiones de política de RLS y los sub-SELECT en las vistas de barrera de seguridad al extender las acciones de la regla.
- Corrija
SERIALIZABLE
las condiciones de carrera en la detección de conflictos del modo de aislamiento de transacciones. - Solucione fallas intermitentes al intentar actualizar campos de columnas compuestas que requieren TOASTing fuera de línea .
- Solucione múltiples fugas de memoria que ocurrieron durante el ciclo de vida de la consulta.
- Acepte segundos fraccionarios en la entrada a los métodos jsonpath
datetime()
. - Aumentó el límite de tokens en
pg_hba.conf
ypg_ident.conf
a 10,240 bytes. - Los errores de falta de memoria del JIT ahora generarán
FATAL
errores de PostgreSQL en lugar de excepciones de C++. - Permite la continuación después de la detección de ciertos tipos de corrupción del índice B-tree
VACUUM
. Si bien esta reparación permite que VACUUM continúe, los usuarios aún debenREINDEX
reparar los índices dañados. - Evite la reproducción doble de transacciones preparadas durante la recuperación de fallas.
- Asegúrese de que el punto de control llame a fsync en las tablas vacías recién creadas.
- Silencie los errores de "contrecord faltante" para evitar registrar mensajes inexactos de
pg_waldump
y .walsender
- Corrige la función [fuzzystrmatch]( https://www.postgresql.org/docs/current/fuzzystrmatch.html Soundex para manejar entradas vacías correctamente.
difference()
- Varias correcciones para
intarray
, incluida la prohibición de matrices de entrada demasiado grandes en los índices de GiST. - Corrección
pg_dump
para manejar correctamente cuerpos de funciones estándar de SQL ( ) que dependen de índices únicos cuando se requiere análisisBEGIN ATOMIC
.
Para obtener una lista completa de los cambios disponibles, consulte las notas de la versión .
Correcciones en PostgreSQL 16 Beta 3
psql
Agregue comandos para\drg
mostrar información sobre la autorización de roles.pg_waldump --save-fullpage
Agregue la ID de la línea de tiempo al nombre de archivo generado usando .- Solucione el bloqueo después del interbloqueo en el trabajador paralelo VACUUM.
Consulte las notas de la versión para obtener una lista completa de las funciones nuevas y modificadas.
Dirección de descarga: https://www.postgresql.org/download/