LOXODATA

PostgreSQL 17.6 et autres correctifs

2025-08-18   1618 mots, 8 minutes de lecture

Le PGDG (PostgreSQL Global Development Group) a publié une mise à jour de toutes les versions supportées de PostgreSQL, incluant 17.6, 16.10, 15.14, 14.19, et 13.22, ainsi que la troisième publication bêta de PostgreSQL 18.

Cette publication corrige également 3 vulnérabilités de sécurité et plus de 55 bogues reportés dans les mois précédents.

Si vous avez précédemment créé un index BRIN utilisant la classe d’opérateur numeric_minmax_multi_ops, merci de consulter la section « Mise à jour » pour les instructions additionnelles après la mise à jour de votre instance.

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

Fin du support de la version 13 de PostgreSQL

La version 13 de PostgreSQL ne recevra plus de correctifs à partir du 13 novembre 2025. Il est donc recommandé de mettre à jour vers une version majeure vos instances en production.

Se référer à la note de versions pour plus d’informations.

Problèmes de sécurité

  • CVE-2025-8713 : l’optimiseur statistique de PostgreSQL peut exposer les échantillons de données d’une vue, partition ou table fille.

CVSS v3.1 Base Score: 3.1

versions vulnérables et supportées : 13 - 17.

L’optimiseur statistique de PostgreSQL permet à un utilisateur de lire des échantillons de données dans une vue à laquelle l’utilisateur n’a pas accès. Séparément, les statistiques permettent à un utilisateur de lire des échantillons de données qu’une règle de sécurité devrait masquer. PostgreSQL maintient des statistiques pour les tables en échantillonnant les données disponibles dans les colonnes ; ces données sont consultées lors du processus de planification d’une requête. Avant cette publication, un utilisateur pouvant créer un opérateur faisant fuiter les données en outrepassant les contrôles d’accès (ACL) et les règles de sécurité (RLS) dans un contexte de partitionnement ou d’héritage de tables. Les données statistiques accessibles comprenaient notamment les histogrammes et les valeurs les plus communes. Les correctifs des CVE-2017-7484 et CVE-2019-10130 avaient pour but de mettre fin à ce type de vulnérabilités sans y parvenir. Les versions précédant PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 sont affectées.

Le projet PostgreSQL remercie Dean Rasheed pour avoir reporté ce problème.

  • CVE-2025-8714: l’outil pg_dump de PostgreSQL permet à un super-utilisateur du serveur d’origine d’exécuter du code dans l’outil psql.

CVSS v3.1 Base Score: 8.8

versions vulnérables et supportées : 13 - 17.

L’inclusion dans pg_dump de données non fiables dans PostgreSQL permet à un super-utilisateur malicieux du serveur PostgreSQL d’origine d’injecter du code arbitraire exécutable au moment de la restauration par le compte du système d’exploitation exécutant psql pour restaurer le dump, via les métacommandes de psql. pg_dumpall est aussi affecté. pg_restore est affecté lorsqu’il est utilisé pour générer un dump au format texte. Ceci est similaire au CVE-2024-21096 de MySQL. Les versions précédant PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 sont affectées.

Le projet PostgreSQL remercie Martin Rakhmanov, Matthieu Denais, et RyotaK pour avoir reporté ce problème.

  • CVE-2025-8715 : avec l’outil pg_dump de PostgreSQL, un saut de ligne dans un nom d’objet permet l’exécution de code arbitraire dans le client psql et dans le serveur cible lors de la restauration.

CVSS v3.1 Base Score: 8.8

versions vulnérables et supportées : 13 - 17.

La neutralisation impropre des sauts de lignes dans pg_dump permet à un utilisateur du serveur d’origine d’injecter du code arbitraire pour le moment de la restauration, par le compte utilisateur du système d’exploitation utilisant psql pour restaurer le dump, via les métacommandes incluses dans les noms d’objets forgés. La même méthode d’attaque permet d’injecter du code SQL en tant que super-utilisateur à la restauration dans le serveur cible. pg_dumpall, pg_restore et pg_upgrade sont aussi affecté. Les versions précédant PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 sont affectées. Les versions avant 11.20 ne sont pas affectées. CVE-2012-0868 avait corrigé ce type de problème, mais la version 11.20 l’avait réintroduit.

Le projet PostgreSQL remercie Noah Misch pour avoir reporté ce problème.

Corrections de bogues et améliorations

Cette mise à jour corrige plus de 60 bogues ayant été signalés durant les mois précédents. Les problèmes ci-dessous concernent PostgreSQL 17. Certains de ces problèmes peuvent aussi concerner d’autres versions de PostgreSQL.

  • correction pour les index BRIN utilisant la classe d’opérateur numeric_minmax_multi_ops operator. Le bogue corrigé pouvait causer de la fragmentation et de l’inefficacité. Merci de consulter la section « Mise à jour » pour obtenir les instructions permettant de corriger ces index ;
  • plusieurs corrections concernant la réplication logique, incluant des correctifs sur des échecs d’allocation mémoire, le rejeu de transactions dupliquées, d’attente infinie, d’arrêt inattendu, et un arrêt impossible d’un serveur secondaire ;
  • correction de la suppression prématurée d’anciens WAL pendant un checkpoint, ce qui pouvait impacter le processus de récupération lors de l’utilisation de slots de réplication ;
  • annule un changement pouvant rejeter un document XML plus volumineux que 10MB ;
  • corrige la méthode de manipulation des classes de caractères imbriquées (i.e. [[:alpha:]%_]) des expressions SIMILAR TO ;
  • rétabli la possibilité pour les expressions PL/pgSQL d’utiliser l’exécution en parallèle ;
  • désactive un rare scénario dans lequel un index B-tree pourrait modifier la mauvaise entrée ;
  • plusieurs correctifs concernant la commande MERGE, incluant des des résultats incorrects de requêtes concurrentes et lors de l’utilisation d’une table parente ;
  • corrige un échec de décompression sur des données n’étant pas très compressible ;
  • préviens d’une boucle infinie dans un checkpoint sur des systèmes ayant un réglage shared_buffers très grand ;
  • corrige des problèmes avec l’authentification GSSAPI lors de l’utilisation de comptes Active Directory avec beaucoup d’appartenances à des groups. Cette publication corrige aussi des échecs de connexions dépendant du temps lors de l’utilisation de SSL ou du chiffrement GSSAPI en mode non bloquant ;
  • corrige une défaillance de la fonction PQcancelCreate() de la bibliothèque libpq ;
  • corrige plusieurs fuites de ressources.

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 avez des index BRIN utilisant la classe d’opérateur numeric_minmax_multi_ops, il est recommandé de les réindexer après la mise à jour pour corriger la potentielle fragmentation et inefficacité

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.

Note à propos de PostgreSQL 18 Bêta

Cette publication marque la troisième publication bêta de PostgreSQL 17 et rapproche d’une étape la communauté de la disponibilité probablement autour de septembre ou octobre 2025.

Dans l’esprit de la communauté PostgreSQL « open-source », nous vous encourageons fortement à tester les nouvelles fonctionnalités de PostgreSQL 18 sur vos systèmes pour nous aider à éliminer les bogues et autres problèmes existants. Bien que nous ne recommandons pas l’utilisation de PostgreSQL 18 Bêta 3 dans des environnements de production, nous vous encourageons à trouver des moyens de tester les applications avec cette version.

Vos tests et retours aideront la communauté à s’assurer que la publication de PostgreSQL 18 maintiendra nos standards pour livrer une version fiable et stable de la base de données relationnelle « open-source » la plus avancée du monde. Merci de prendre connaissance du processus de bêta test et de comment vous pouvez contribuer : https://www.postgresql.org/developer/beta/.

Mettre à jour vers PostgreSQL 18 Bêta 3

Afin de mettre à jour vers PostgreSQL 18 Bêta 3 à partir d’une publication antérieure de PostgreSQL, vous aurez besoin d’utiliser une stratégie similaire à la mise à jour entre versions majeures de PostgreSQL (par exemple : pg_upgrade ou pg_dump/pg_restore). Pour plus d’information, merci de prendre connaissance de la documentation sur la mise à jour.

Changements depuis la Bêta 2

Les corrections et changements dans PostgreSQL 18 Beta 3 incluent :

  • corrige des régressions de performances sur des requêtes triviales ;
  • corrige l’erreur can't get cancellation key observée avec quelques logiciels additionnels ;
  • corrige la défaillance du redémarrage d’un processus d’arrière-plan après un crash ;
  • corrige un rare échec d’entrée/sortie asynchrone ;
  • arrête l’export d’objets excédentaire dans pg_dumpall --statistics-only et --no-schema ;
  • retire les formats de fichiers non-texte de pg_dumpall ;
  • corrige la fonction date_trunc(..., 'infinity'::timestamptz) sur des systèmes.

Merci de se référer aux notes de publication pour la liste complète des nouveautés et changements : https://www.postgresql.org/docs/18/release-18.html

Test pour les bogues et la compatibilité

La stabilité de chaque publication de PostgreSQL dépend grandement de vous, la communauté, en testant la version à venir avec vos charges et tests pour trouver les bogues et régressions avant la mise à disposition générale de PostgreSQL 18. En tant que Bêta, des changements mineurs du comportement de la base de données, des détails des caractéristiques et des APIs sont toujours possibles. Vos retours et tests aideront à finaliser les nouvelles caractéristiques, ainsi, merci de tester dans un futur proche. La qualité des tests utilisateurs détermine le moment de la publication finale.

Une liste de sujets ouverts est publiquement disponible dans le wiki de PostgreSQL. Vous pouvez rapporter des bogues en utilisant le site web de PostgreSQL : https://www.postgresql.org/account/submitbug/

Planing Bêta

Il s’agit de la troisième publication Béta de la version 18. Le projet PostgreSQL publiera au moins une publication candidate, avant la publication finale autour de septembre/octobre 2025. Pour plus d’information, voir la page sur les tests Bêta.

Liens

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