Paris, le 14 mai 2020
Le PostgreSQL Global Development Group a publié le Jeudi 13 mai 2021, une mise à jour de toutes les versions supportées de PostgreSQL, soit les versions : 13.3, 12.7, 11.12, 10.17, et 9.6.22. Cette mise à jour corrige trois vulnérabilités et plus de 45 bogues rapportés au cours des trois derniers mois.

Pour une liste complète des changements, reportez-vous à la note de publication.
Problèmes de sécurité
- CVE-2021-32027: Dépassement de tampon dû à un débordement d’entier dans les calculs d’indices de tableau
Versions concernées : 9.6 - 13. L’équipe chargée de la sécurité ne teste généralement pas les versions non prises en charge, mais ce problème est assez ancien.
Lors de la modification de certaines valeurs de tableaux SQL, l’absence de vérification de limite permet à des utilisateurs authentifiés à la base de données d’écrire des octets arbitraires dans une large zone de la mémoire du serveur.
Le projet PostgreSQL remercie Tom Lane d’avoir signalé ce problème.
- CVE-2021-32028: Révélation de la mémoire dans
INSERT .. ON CONFLICT ... DO UPDATE
Versions concernées : 9.6 - 13. L’équipe chargée de la sécurité ne teste généralement pas les versions non prises en charge. Cette fonctionnalité est apparue pour la première fois dans la version 9.5.
En utilisant une commande INSERT ... ON CONFLICT ... DO UPDATE sur une table spécialement conçue, un attaquant peut lire des octets arbitraires de la mémoire du serveur. Dans la configuration par défaut, tout utilisateur de base de données authentifié peut créer des objets prérequis et mener à bien cette attaque à sa guise. Un utilisateur dépourvu des privilèges CREATE et TEMPORARY sur toutes les bases de données et du privilège CREATE sur tous les schémas, ne peut pas utiliser cette attaque.
Le projet PostgreSQL remercie Andres Freund pour avoir signalé ce problème.
- CVE-2021-32029 : Divulgation de mémoire lors d’un
UPDATE ... RETURNINGsur une table partitionnée.
Versions concernées: 11 - 13
En utilisant un UPDATE ... RETURNING sur une table partitionnée spécialement conçue, un attaquant peut lire des octets arbitraires de la mémoire du serveur. Dans la configuration par défaut, tout utilisateur de base de données authentifié peut créer des objets prérequis et mener à bien cette attaque à volonté. Un utilisateur dépourvu des privilèges CREATE et TEMPORARY sur toutes les bases de données et du privilège CREATE sur tous les schémas, ne peut généralement pas utiliser cette attaque à volonté.
Le projet PostgreSQL remercie Tom Lane pour avoir signalé ce problème.
Corrections de bogues et améliorations
Cette mise à jour corrige plus de 45 bogues qui ont été signalés au cours des derniers mois. Certains de ces problèmes ne concernent que la version 13, mais pourraient également s’appliquer à d’autres versions prises en charge.
Parmi ces corrections, citons :
-
Correction d’un éventuel résultat incorrect d’un
UPDATE ... RETURNINGlors d’une mise à jour inter-partition. -
Correction de la commande
ALTER TABLE ... ALTER CONSTRAINTlorsqu’elle est utilisée pour les contraintes de clés étrangères sur les tables partitionnées. La commande ne parvenait pas à régler les propriétésDEFERRABLEet/ouINITIALY DEFERREDpour les contraintes et les déclencheurs des partitions individuelles, ce qui entraînait un comportement inattendu. Après avoir effectué la mise à jour vers cette version, vous pouvez exécuter la commandeALTER TABLE ... ALTER CONSTRAINTpour corriger les tables partitionnées qui se comportent incorrectement. -
Garantie que lorsqu’une table enfant est attachée avec
ALTER TABLE ... INHERITles colonnes générées dans le parent ont été générées de la même manière dans l’enfant. -
Interdiction de marquer une colonne d’identité comme étant
NULL. -
Autorisation de définir les paramètres
role,session_autthorization, ettemp_buffersavecALTER ROLE ...SET/ALTER DATABASE ... SET. -
Vérification du fait que
REINDEX CONCURRENTLYpréserve toute cible statistique définie pour l’index. -
Correction d’un problème où, dans certains cas, la conservation des enregistrements dans les triggers
AFTERpouvait provoquer des plantages. -
Correction de la manière dont
to_char()traite les codes de format de mois en chiffres romains avec des intervalles négatifs. -
Correction de l’utilisation d’une valeur non initialisée lors de l’analyse d’un quantificateur
\{m,n\}dans une expression régulière en mode BRE. -
Correction des erreurs du planificateur “
could not find pathkey item to sort” qui se produisent dans certaines situations lorsque la clé de tri implique une fonction d’aggégat ou une fonction de fenêtrage. -
Correction d’une anomalie avec les bitmap scan d’index BRIN qui pourrait amener à des erreurs : “
could not open file”. -
Corrections des réponses potentiellement erronées des recherches dans l’index
GINavectsvectorlorsqu’il y a beaucoup d’enregistrements correspondants. -
Correction pour la fonctionnalité
COMMIT AND CHAINsur le serveur et danspsql. -
Prévention d’un changement de timeline incorrect lors de la récupération de transactions à deux phases non validées à partir des
WAL, ce qui pourrait entraîner des problèmes de cohérence et l’impossibilité de redémarrer le serveur. -
Vérification du fait que
wal_sync_methodest défini àfdatasyncpar défaut sur les versions FreeBSD plus récentes. -
Désactivation du paramètre
vacuum_cleanup_index_scale_factoret de l’option de stockage. -
Correction de plusieurs fuites de mémoire dans le serveur, dont une durant l’initialisation des paramètres SSL/TLS.
-
Rétablissement du comportement précédent de
\connect service=XYZdanspsql, c’est à dire interdire aux variables d’environnement (par exemplePGPORT) de remplacer les entrées dans le fichier de service. -
Correction de la manière dont
pg_dumpgère les colonnes générées dans les tables partitionnées. -
Addition de vérifications supplémentaires à
pg_upgradepour des types de donnée non-migrables. -
Sous Windows,
initdbaffiche maintenant des instructions sur la façon de démarrer le serveur avecpg_ctlen utilisant des séparateurs backslash. -
Correction de
pg_waldumppour compter correctement les enregistrementsXACTlors de la génération de statistiques par enregistement.
Pour la liste complète des changements, voir les notes de versions.
Avis de fin de vie de PostgreSQL 9.6
PostgreSQL 9.6 cessera de recevoir des correctifs le 11 Novembre 2021. Si vous utilisez PostgreSQL dans un environnement de production, nous vous suggérons de prévoir une mise à jour vers une version plus récente et supportée de PostgreSQL. Veuillez consulter notre politique de gestion des versions pour plus d’informations.
Mise à jour
Toutes les mises à jour de PostgreSQL sont cumulatives. Comme pour les autres mises à jour mineures, les utilisateurs n’ont pas à sauvegarder et restaurer leur base ni à utiliser pg_upgrade pour appliquer cette mise à jour ; vous pouvez simplement arrêter PostgreSQL et mettre à jour ses binaires.
Les utilisateurs ayant sauté une version ou plus peuvent avoir besoin d’ajouter des étapes supplémentaires après la mise à jour.
Pour plus de détails, consultez la note de publication
Liens
- PostgreSQL (457) ,
- release (93) ,
- mineure (36) ,
- sécurité (63) ,
- 13 (29) ,
- 12 (30) ,
- 11 (26) ,
- 10 (32) ,
- 9 (57) ,
- update (51)