
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
Lock
des 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
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 exempleFF1
) pourto_timestamp
, où un code de format entier avant leFFn
consommait tous les chiffres disponibles ; - corrections pour
SQL/JSON
etXMLTABLE()
pour mettre des entrées spécifiques entre guillemets lorsque cela est nécessaire ; - inclusion de l’option
ldapscheme
dans 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_controldata
plus résilient lors de l’affichage d’informations provenant de fichierspg_control
corrompus ; - correction d’une fuite mémoire sur la commande
pg_restore
avec des données compressées viazstd
; - correction de
pg_basebackup
pour gérer correctement les fichierspg_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’extensionearthdistance
est utilisée ; - corrige des erreurs avec
pageinspect
dans 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.