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 ... RETURNING
sur 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 ... RETURNING
lors d’une mise à jour inter-partition. -
Correction de la commande
ALTER TABLE ... ALTER CONSTRAINT
lorsqu’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ésDEFERRABLE
et/ouINITIALY DEFERRED
pour 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 CONSTRAINT
pour corriger les tables partitionnées qui se comportent incorrectement. -
Garantie que lorsqu’une table enfant est attachée avec
ALTER TABLE ... INHERIT
les 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_buffers
avecALTER ROLE ...SET/ALTER DATABASE ... SET
. -
Vérification du fait que
REINDEX CONCURRENTLY
pré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
AFTER
pouvait 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
GIN
avectsvector
lorsqu’il y a beaucoup d’enregistrements correspondants. -
Correction pour la fonctionnalité
COMMIT AND CHAIN
sur 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_method
est défini àfdatasync
par défaut sur les versions FreeBSD plus récentes. -
Désactivation du paramètre
vacuum_cleanup_index_scale_factor
et 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=XYZ
danspsql
, 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_dump
gère les colonnes générées dans les tables partitionnées. -
Addition de vérifications supplémentaires à
pg_upgrade
pour des types de donnée non-migrables. -
Sous Windows,
initdb
affiche maintenant des instructions sur la façon de démarrer le serveur avecpg_ctl
en utilisant des séparateurs backslash. -
Correction de
pg_waldump
pour compter correctement les enregistrementsXACT
lors 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 (402) ,
- release (84) ,
- mineure (31) ,
- sécurité (55) ,
- 13 (24) ,
- 12 (29) ,
- 11 (26) ,
- 10 (32) ,
- 9 (57) ,
- update (46)