Paris, le 9 février 2024

Le PostgreSQL Global Development Group a publié une mise à jour pour toutes les versions supportées de PostgreSQL, c’est à dire les versions 16.2, 15.6, 14.11, 13.14 et 12.18. Cette version corrige une faille de sécurité et plus de 65 bugs signalés au cours des derniers mois. Voici notre traduction.

visuel annonce

Si vous utilisez des index GIN, il se peut que vous deviez les réindexer après la mise à jour. Veuillez consulter les notes de mise à jour pour plus d’informations.

Pour obtenir la liste complète des changements, veuillez consulter les notes de mise à jour.

Faille de sécurité

  • CVE-2024-0985 : un utilisateur PostgreSQL peut faire exécuter du SQL arbitraire grâce à REFRESH MATERIALIZED VIEW CONCURRENTLY.

Score CVSS v3 : 8.0

Versions supportées vulnérables : PostgreSQL 12 à 15.

Une étape de la commande REFRESH MATERIALIZED VIEW CONCURRENTLY se déroulait sans restrition de sécurité suffisante. Si le propriétaire d’une vue matérialisée pouvait pousser un superutilisateur ou un autre utilisateur avec des droits élevés à opérer un tel rafraîchissement sur sa vue, le propriétaire de cette vue pouvait contrôler quel code était exécuté avec les droits de l’utilisateur ayant lancé le REFRESH. Le correctif de cette faille fait que tout le code utilisateur est exécuté en tant qu’utilisateur de la vue, comme on pouvait s’y attendre.

Le projet PostgreSQL remercie Pedro Gallegos pour avoir remonté le problème.

Correctifs et améliorations

Cette mise à jour corrige 65 problèmes rapportés ces derniers mois. Ceux ci-dessous concernent PostgreSQL 16.

Certains peuvent affecter d’autres versions supportées :

  • Correction d’une fuite de mémoire lors de l’exécution de JIT qui pouvait conduire à un épuisement de la mémoire.
  • Plusieurs corrections du planificateur.
  • Aligne le comportement de MERGE sur celui d’UPDATE lors de la mise à jour d’une colonne de clé de partitionnement et ignore le déclenchement du trigger AFTER UPDATE ROW et autres actions post-mise à jour.
  • Corrige des problèmes avec des noms de token dupliqués dans des commandes ALTER TEXT SEARCH CONFIGURATION … MAPPING
  • Correction de DROP ROLE dans le cas de noms de rôles dupliqués.
  • Lors de DROP STATISTICS, le verrouillage de la table concernée est désormais corrigé pour éviter une erreur si ANALYZE est exécuté en même temps.
  • Corrige la vérification de la volatilité des expressions dans GENERATED et DEFAULT.
  • Vérification que les collations correspondent lors de l’ajout d’un index existant à un nouvel index partitionné.
  • Évite une erreur quand un index faisant partie d’un index partitionné est supprimé en même temps qu’un REINDEX INDEX sur l’index partitionné.
  • Corrige un verrou lors du nettoyage des index GIN. Dans ce cas, si plusieurs processus essayaient de nettoyer la même page d’index GIN, il y avait une chance de corruption de l’index. Si vous pensez être affecté par ce problème, réindexez vos index GIN après application de la mise à jour.
  • Suppression d’une erreur avec les index SP-GiST partitionnés.
  • Plusieurs corrections de droits pour les Large Objects
  • Dans le résultat de EXPLAIN (BUFFERS), le mot shared/local est remplacé par shared.
  • Assure la durabilité de la commande CREATE DATABASE si un crash du système se produit durant son exécution ou juste après.
  • Ajout de plus de message de traces lors du démarrage et de la fin d’une restauration depuis un backup.
  • Retour sur un changement qui rendait le processus walreceiver non réceptif aux SIGTERM pendant qu’il attendait l’établissement d’une connexion de réplication.
  • Plusieurs corrections pour la réplication logique.
  • Correction d’une incompatibilité avec OpenSSL 3.2.
  • Correction de PL/pgSQL pour permettre aux commandes SQL CREATE FUNCTION/CREATE PROCEDURE d’utiliser des corps de fonctions du standard SQL.
  • Correction de la gestion des erreurs dans le mode pipeline de libpq.
  • S’assure que initdb décommente les entrées de postgresql.conf pour les paramètres de la famille lc_.
  • Dans pg_dump, ne sauvegarde pas les politiques de sécurité niveau ligne (RLS) ou les label de sécurité pour les objets membres d’une extension.

Cette version met également à jour les fichiers de données sur les fuseaux horaires avec la version 2024a de tzdata pour les changements législatifs sur l’heure d’été au Groenland, au Kazakhstan et en Palestine, ainsi que des corrections pour les stations antarctiques Casey et Vostok. D’autres corrections historiques pour le Vietnam, Toronto et Miquelon sont présentes.

Mise à jour

Toutes les mises à jour de PostgreSQL sont cumulatives. Comme pour les autres versions mineures, les utilisateurs n’ont pas besoin de sauvegarder et recharger leur base de données, ni d’utiliser pg_upgrade pour appliquer la mise à jour. Vous pouvez simplement arrêter PostgreSQL et mettre à jour ses binaires.

Si vous utilisez des index GIN, vous devriez réindexer après application de cette mise à jour.

Les utilisateurs ayant sauté une ou plusieurs mises à jour peuvent devoir appliquer leurs opérations après mises à jour respectives ; voir les notes de versions des versions précédentes.

Voir les notes de version pour les détails.

Liens


DALIBO

DALIBO est le spécialiste français de PostgreSQL®. Nous proposons du support, de la formation et du conseil depuis 2005.