LOXODATA

PostgreSQL 16.2 et autres correctifs

2024-02-12   844 mots, 4 minutes de lecture

Le PGDG a publié une mise à jour de toutes les versions supportées de PostgreSQL. Il s’agit des versions 16.2, 15.6, 14.11, 13.14 et 12.18. Cette publication corrige près de 65 bogues repérés durant les derniers mois.

Cette publication inclut des correctifs sur les index. Il peut s’avérer nécessaire de réindexer certains index. Se référer à la section Notes de publication pour plus de détails.

Pour la liste complète des changements, se référer à la section Notes de publication.

Problèmes de sécurité

CVE-2024-0985 : REFRESH MATERIALIZED VIEW CONCURRENTLY exécute du code arbitraire pour des utilisateurs PostgreSQL non propriétaires de la vue

CVSS v3 Base Score: 8.0

Versions affectées : 12 - 15.

Une étape dans la commande d’un rafraîchissement en parallèle était exécutée avec des restrictions de sécurité faibles. Si le propriétaire d’une vue matérialisée peut persuader un super-utilisateur ou un utilisateur avec des privilèges élevés d’exécuter un rafraîchissement parallèle sur cette vue, alors le propriétaire de la vue peut contrôler l’exécution du code avec les privilèges de l’utilisateur ayant lancer le REFRESH. La correction de cette vulnérabilité permet de n’exécuter vue qu’avec les privilèges du propriétaire de cette dernière.

Le projet PostgreSQL remercie Pedro Gallegos pour avoir reporté ce problème.

Corrections des bogues et améliorations

Cette mise à jour corrige près de 65 bogues qui ont été reportés depuis ces derniers mois. Les problèmes listés ci-dessous affectent la version 16 de PostgreSQL. Certaines peuvent aussi affecter d’autres versions supportées de PostgreSQL.

  • Corrige une fuite mémoire lors de l’inlining avec JIT qui pouvait conduire à des saturations de la mémoire;
  • Plusieurs corrections portant sur le planificateur de requêtes;
  • Alignement du comportement de MERGE et UPDATE lors de la mise à jour de la colonne d’une clé de partitionnement et ne plus activer de déclencheur AFTER UPDATE ROW et autres actions après mise à jour;
  • Correction de problèmes de noms de token dupliqués avec les commandes ALTER TEXT SEARCH CONFIGURATION ... MAPPING;
  • Correction de la commande DROP ROLE avec des noms de rôles dupliqués;
  • Lors d’un DROP STATISTICS, verrouiller correctement la table associée pour prévenir des erreurs si un ANALYZE est exécuté en parallèle;
  • Corrige les vérifications de volatilité de fonction pour les expressions GENERATED et DEFAULT;
  • Vérifie la correspondance de collation lors de la comparaison d’un index existant et un nouvel index partitionné;
  • Évite une erreur si un index enfant est supprimé en parallèle avec REINDEX INDEX sur un index partionné;
  • Correction pour verrouillage lors du nettoyage d’index GIN. Pour ce cas, si plusieurs processus tentaient de nettoyer les mêmes pages d’index GIN, il y avait un risque de corruption d’index. Si vous pensez être affecté par ce problème, réindexer vos index GIN après la mise à jour;
  • Évite les erreurs avec les index SP-GiST partitionnés;
  • Plusieurs corrections de propriétés pour des objets volumineux;
  • Pour la commande EXPLAIN (BUFFERS), changement du nom de l’attribut shared/local en shared pour les données de timing d’I/O;
  • Assurer la durabilité de la commande CREATE DATABASE lors d’un crash système pendant ou juste après son exécution;
  • Ajouter plus de messages dans les journaux lors du démarrage ou la fin d’une restauration depuis une sauvegarde;
  • Annule une modification ayant laissé le processus walreceiver ne répondant plus avec un SIGTERM en attendant qu’une connexion de réplication soit établie;
  • Plusieurs corrections pour la réplication logique;
  • Corrige l’incompatibilité avec OpenSSL 3.2;
  • Corrige PL/pgSQL pour autoriser les commandes SQL CREATE FUNCTION/CREATE PROCEDURE ayant des corps de fonctions du standard SQL;
  • Corrige la gestion d’erreur dans le mode pipeline de libpq;
  • Assure que initdb décommente toujours les entrées dans le fichier postgresql.conf pour les paramètres de type lc_;
  • Dans pg_dump, ne pas extraire les règles RLS ou les labels de sécurité pour les objets membres d’extension.

Cette publication met à jour également les fichiers de données des fuseaux horaires à la sortie de tzdata 2024a pour les changements de lois DST au Groenland, Kazakhstan et Palestine, ainsi que des corrections pour les stations Casey et Vostok en Antarctique. Et des corrections historiques pour le Vietnam, Toronto et Miquelon.

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.

Si vous utilisez des index GIN, vous aurez peut être besoin de réindexer après la mise à jour. Merci de consulter les notes de publication de versions pour plus d’informations.

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.

Pour plus de détails, se référer à la note de publication de versions.

Liens

Si vous avez des corrections ou suggestions sur cette annonce de publication, merci de les envoyer à la mailing list publique pgsql-www@lists.postgresql.org.