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é
-
- 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
Lockdes noms d’évènements d’attenteLWLock; - 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
vacuumqui dans le pire des cas peut conduire à une corruption du catalogue système ; - corrections sur la
TRUNCATEde 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 exempleFF1) pourto_timestamp, où un code de format entier avant leFFnconsommait tous les chiffres disponibles ; - corrections pour
SQL/JSONetXMLTABLE()pour mettre des entrées spécifiques entre guillemets lorsque cela est nécessaire ; - inclusion de l’option
ldapschemedans la vuepg_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_controldataplus résilient lors de l’affichage d’informations provenant de fichierspg_controlcorrompus ; - correction d’une fuite mémoire sur la commande
pg_restoreavec des données compressées viazstd; - correction de
pg_basebackuppour gérer correctement les fichierspg_wal.tarde plus de 2GB sur Windows ; - modification sur le module
earthdistancepour utiliser le canevas des fonctions standards SQL pour corriger des problèmes sur des mises à jour majeures vers la version 17 quand l’extensionearthdistanceest utilisée ; - corrige des erreurs avec
pageinspectdans des instances où la définition de la fonctionbrin_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.