Le PGDG a publié une mise à jour de toutes les versions supportées de PostgreSQL, dans les versions 15.2, 14.7, 13.10, 12.14 et 11.19.
Cette publication corrige un problème de sécurité et plus de 60 bogues reportés ces trois derniers mois.
Pour la liste complète de changements, se référer aux notes de versions.
Problème de sécurité
CVE-2022-41862 : Divulgation de mémoire client à la connexion, avec Kerberos, avec un serveur modifié.
Versions affectées : 12 - 15.
Un serveur modifié non authentifié ou un intermédiaire non authentifié peut
envoyer une chaîne de caractère non terminée pendant l’établissement du
chiffrement de transport Kerberos. Lorsqu’une application cliente utilisant la
libpq
possède un cache d’identification Kerberos et ne désactive pas
explicitement l’option gssencmode
, un serveur peut forcer la libpq
à une
surlecture et à signaler un message d’erreur contenant des octets non
initialisés depuis et en suivant de son tampon de réception. Si l’appelant de
la libpq
rend ce message accessible à un attaquant, ceci entraîne une
divulgation des octects lus. Nous n’avons pas confirmé ou exclut la viabilité
d’attaques qui se servirait d’un crash ou de la présence notable d’informations
confidentielles de ces octets divulgués.
Le projet PostgreSQL remercie Jacob Champion d’avoir signalé ce problème.
Corrections des bogues et améliorations
Cette mise à jour règle plus de 60 bogues rapportés ces derniers mois. La liste ci-dessous concerne des problèmes sur la version 15. Certains, concernent également d’autres versions de PostgreSQL.
Sont inclus dans cette livraison :
- correctif pour les tables partitionnées pour mettre à jour correctement les
colonnes
GENERATED
dans les tables filles si la colonne
GENERATED
n’existe pas dans la table parente ou si la colonne fille générée possède des dépendances différentes du parent ; - plusieurs correctifs pour la commande MERGE ;
- permettre à une requête
WITH RECURSIVE … CYCLE
d’accéder à sa colonne
SET
de sortie ; - correction d’une erreur avec l’insertion par lot sur tables étrangères
pouvant induire des incohérences logiques. Par exemple, un trigger
BEFORE NOW
peut ne pas traiter les lignes qui devraient être disponibles ; - interdiction de l’utilisation de variables non définies dans les vérifications d’existence de jsonpath ;
- correctif pour jsonb subscripting provenant directement d’une colonne texte de table ;
- prise en compte des valeurs mises à jour de
checkpoint_completion_target
au rechargement ; - trace de la valeur correcte de l’estampille temporelle pour le mode
recovery_target_xid
; - correctif pour autoriser des listes de colonnes de plus de 100 éléments lors de l’utilisation de la réplication logique ;
- prévention de l’erreur “mauvaise taille de tuple” à la fin d’un
VACUUM
; - évite un commit immédiat après un
ANALYZE
lors de l’utilisation d’une chaîne de traitement ; - plusieurs correctifs sur le planificateur de requête, incluant celui de fournir plus d’opportunités pour utiliser la mémoïsation pour les jointures partition à partition ;
- correctif pour la collecte de statistiques pour gérer correctement les changements de type d’une relation (par exemple lorsqu’une table est convertie en vue) ;
- assurance que les requêtes de full text search peuvent être annulées pendant la reconnaissance de phrases ;
- correction des interblocages entre DROP DATABASE et le processus de travail de la réplication logique ;
- correction des fuites mémoires pour les sessions de courte durée lorsqu’un CREATE SUBSCRIPTION échoue lors de la connexion ;
- amélioration de performance pour les réplicas avec le paramètre
hot_standy activé
qui traitent des requêtes
SELECT
; - plusieurs corrections sur le décodage logique qui améliore sa stabilité et la gestion du bloat ;
- plusieurs corrections du plugin de décodage logique par défaut,
pgoutput
, pour ne pas envoyer les colonnes qui ne sont pas listées dans la liste des colonnes répliquées d’une table ; - correction d’une corruption possible de très gros fichiers de mappage d’espace de table dans pg_basebackup ;
- suppression un avertissement sans conséquence de
pg_dump dans le
mode
--if-exists
lorsque le schémapublic
est détenu par propriétaire autre que celui par défaut ; - corrige les commandes
\sf
et\ef
de psql pour gérer les fonctions SQL avec un corps de fonction du standard SQL (par exemple,BEGIN ATOMIC
) ; - correction de la complétion par tabulation des commandes
ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA
; - mise à jour de l’extension
pageinspect pour
marquer les fonctions d’accès disque comme
PARALLEL RESTRICTED
; - correction de l’extension seg pour ne pas crasher ou afficher des erreurs si un nombre en entrée contient plus de 127 chiffres ;
Cette mise à jour contient aussi les données tzdata
de la publication 2022g
pour les changements réglementaires DST au Groenland et Mexique, plus des
corrections historiques pour le Canada du Nord, la Colombie, et Singapour.
Notamment, un nouveau fuseau horaire, America/Ciudad_Juarez, a été créé à partir
de celui de America/Ojinaga.
Pour la liste complète des changements, veuillez consulter les notes de versions
Mise à jour
Toutes les publications de mises à jour de PostgreSQL sont
cumulatives. Comme pour les autres mises à jour mineures, il n’est pas
nécessaire d’extraire et de recharger les bases de données ni
d’utiliser pg_upgrade
pour appliquer cette mise à jour ;
il suffit simplement d’arrêter PostgreSQL et de mettre à jour les binaires.
Les utilisateurs ayant sauté une ou plusieurs mises à jour peuvent avoir besoin d’étapes additionnelles après la mise à jour. Les notes de publication des versions précédentes fournissent les détails.