LOXODATA

PostgreSQL 17.3 et autres correctifs

2025-02-14   809 mots, 4 minutes de lecture

Le PGDG (PostgreSQL Global Development Group) a publié une mise à jour de toutes les versions supportées de PostgreSQL, incluant 17.3, 16.7, 15.11, 14.16, 13.19.

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

Cependant, le PGDG a annoncé mettre à disposition le 20 février prochain un correctif suite à l’introduction d’une régression sur cette mise à jour. Il est recommandé de ne pas procéder à cette mise à jour, mais d’attendre la version 17.4.

Problèmes de sécurité

  • CVE-2025-1094 :

    • CVSS v3.1 Base Score: 8.1
    • Supported, Vulnerable Versions: 13 - 17.

Une neutralisation inadéquate d’une syntaxe avec guillemets dans les fonctions de libpq PQescapeLiteral(), PQescapeIdentifier(), PQescapeString() et PQescapeStringConn() permet de faire de l’injection SQL dans certains cas d’usage. Spécifiquement, l’injection SQL requiert à l’application d’utiliser le résultat de fonction pour construite l’entrée de psql, le terminal interactif de PostgreSQL. De même, une neutralisation inadéquate d’une syntaxe avec guillemets dans les programmes utilitaires de PostgreSQL en ligne de commande permet à une source d’arguments à ces commandes en ligne d’effectuer de l’injection SQL lorsque le paramètre client_encoding est BIG5 et server_encoding est soit EUC_TW soit MULE_INTERNAL. Les versions antérieures à PostgreSQL 17.3, 16.7, 15.11, 14.16 et 13.19 sont affectées.

Le projet PostgreSQL remercie Stephen Fewer, Principal Security Researcher, Rapid7 pour avoir signalé ce problème.

 

Corrections de bogues et améliorations

Cette mise à jour corrige plus de 70 bogues ayant été reporté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.

Les correctifs sont :

  • restauration du comportement d’avant la version 17 concernant la troncature des noms de bases de données de plus de 63 octets et les noms d’utilisateurs dans les requêtes de connexion ;
  • ne pas vérifier des privilèges de connexions et limites sur les processus parallèles, mais les hériter du processus principal ;
  • suppression du suffixe Lock des noms d’évènements d’attente LWLock ;
  • correction de la réutilisation de résultats obsolètes dans les agrégats de fenêtrage qui peuvent conduire à des résultats incorrects ;
  • correction de plusieurs conditions de concurrence pour vacuum qui dans le pire des cas peut conduire à une corruption du catalogue système ;
  • corrections sur la TRUNCATE de tables et d’index pour prévenir une éventuelle corruption ;
  • correction sur le détachement d’une partition lorsque sa propre contrainte de clé étrangère fait référence à une table partitionnée ;
  • correction pour les codes de format FFn (par exemple FF1) pour to_timestamp, où un code de format entier avant le FFn consommait tous les chiffres disponibles ;
  • corrections pour SQL/JSON et XMLTABLE() pour mettre des entrées spécifiques entre guillemets lorsque cela est nécessaire ;
  • inclusion de l’option ldapscheme dans la vue pg_hba_file_rules() ;
  • corrections pour UNION, y compris le fait de ne pas fusionner des colonnes avec des collations non compatibles ;
  • corrections pouvant avoir un impact sur la disponibilité ou la vitesse de démarrage d’une connexion à PostgreSQL ;
  • correction de plusieurs fuites mémoire dans la sortie du décodage logique ;
  • correction de plusieurs fuites mémoire avec le langage PL/Python ;
  • ajout de l’autocomplétion pour la commande COPY (MERGE INTO) ;
  • rendre pg_controldata plus résilient lors de l’affichage d’informations provenant de fichiers pg_control corrompus ;
  • correction d’une fuite mémoire sur la commande pg_restore avec des données compressées via zstd ;
  • correction de pg_basebackup pour gérer correctement les fichiers pg_wal.tar de plus de 2GB sur Windows ;
  • modification sur le module earthdistance pour utiliser le canevas des fonctions standards SQL pour corriger des problèmes sur des mises à jour majeures vers la version 17 quand l’extension earthdistance est utilisée ;
  • corrige des erreurs avec pageinspect dans des instances où la définition de la fonction brin_page_items() n’est pas à jour de la dernière version ;
  • corrige des conditions de concurrence lors de tentative d’annulation d’une requête distante avec postgres_fdw ;

Cette publication met aussi à jour les fichiers de fuseaux horaires avec la publication de tzdata 2025a pour les changements de lois DST au Paraguay, plus des corrections historiques pour les Philippines.

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.

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 liste publique pgsql-www@lists.postgresql.org.