Paris, le 14 février 2025
Le PostgreSQL Global Development Group a publié le 13 février une mise à jour pour toutes les versions supportées de PostgreSQL, c’est-à-dire les versions 17.3, 16.7, 15.11, 14.16, and 13.19.
Voici notre traduction.
Note importante de Dalibo
Depuis la sortie de ces versions mineures le 13 février, une importante régression a été découverte suite à la correction de la faille de sécurité.
Il est fortement conseillé de ne pas mettre à jour ! De nouvelles versions mineures sortiront jeudi 20 février.
Failles de sécurité
Cette mise à jour corrige une faille de sécurité :
- CVE-2025-1094: L’API de PostgreSQL oubliait de neutraliser la syntaxe d’échappement pour les textes qui échouaient à la validation de l’encodage (CVSS v3.1 Base Score: 8.1).
Une mauvaise neutralisation de la syntaxe d’échappement réalisée par les fonctions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), et PQescapeStringConn() permettait, sous certaines conditions, de parvenir à effectuer une injection SQL. Plus spécifiquement, l’injection SQL nécessite que l’application utilise le résultat de la fonction pour construire une entrée pour la console psql. De même, une neutralisation impropre des guillemets dans des utilitaires en ligne de commande de PostgreSQL permet à une source d’arguments de ligne de commande de parvenir à une injection SQL quand client_encoding
est BIG5 et server_encoding
est soit EUC_TW, soit MULE_INTERNAL. Les versions avant PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 sont concernées.
Le projet PostgreSQL project remercie Stephen Fewer, Principal Security Researcher à Rapid7 pour avoir remonté ce problème.
Correctifs et améliorations
Cette mise à jour corrige plus de 70 bugs signalés au cours des derniers mois. Les problèmes répertoriés ci-dessous affectent PostgreSQL 17. Certains de ces problèmes peuvent également affecter d’autres versions de PostgreSQL.
- Restaure le comportement de troncature antérieur à la version 17 pour les noms de base de données et les noms d’utilisateur de plus de 63 octets dans les demandes de connexion.
- Corrige la gestion des privilèges et limites de connexion pour les workers parallèles qui ne sont plus vérifiés, mais sont hérités du processus principal.
- Supprime le suffixe Lock dans les noms des événements d’attente LWLock.
- Empêche la réutilisation possible de résultats périmés avec les fonctions de fenêtrage, pouvant conduire à des résultats incorrects.
- Corrige plusieurs problèmes liés au VACUUM pouvant causer la corruption d’un catalogue système.
- Corrige plusieurs problèmes sur le troncage de tables et d’index qui empêchent une potentielle corruption.
- Corrige le détachement d’une partition dont la propre contrainte de clé étrangère référence une table partitionnée.
- Corrige les formats de code FFn pour la fonction to_timestamp (par exemple FF1).
- Corrige SQL/JSON et XMLTABLE() pour mettre des entrées spécifiques entre guillemets lorsque cela est nécessaire.
- Ajoute l’option ldapscheme option dans pg_hba_file_rules().
- Corrige plusieurs problèmes sur l’ordre UNION, notamment sur la non-fusion des colonnes avec des collations non compatibles.
- Corrige plusieurs soucis pouvant impacter la disponibilité ou la vitesse de démarrage d’une connexion à PostgreSQL.
- Corrige plusieurs fuites mémoire dans la sortie du décodage logique.
- Corrige plusieurs fuites mémoire dans PL/Python.
- Ajoute la complétion par tabulation pour COPY (MERGE INTO).
- Rend pg_controldata plus résilient dans l’affichage de fichiers pg_control corrompus.
- Corrige une fuite mémoire dans pg_restore avec des données compressées avec zstd.
- Corrige pg_basebackup pour gérer correctement les fichiers pg_wal.tar files de plus de 2 Go sur Windows.
- Modifie l’extension earthdistance pour utiliser des corps de fonction SQL standards, ce qui corrige de possibles soucis de mises à jour majeures en version 17 pour les bases utilisant cette extension.
- Corrige un crash dans pageinspect pour les instances où la définition de la fonction brin_page_items() n’était pas mise à jour à la dernière version.
- Corrige un cas particulier sur l’annulation d’une requête distante avec postgres_fdw.
Cette version inclut aussi les mises à jour des fichiers de fuseaux horaires de tzdata version 2025a avec les changements législatifs d’heure d’été au Paraguay, plus des corrections historiques pour les Philippines.
Mise à jour
Toutes les mises à jour de PostgreSQL sont cumulatives. Comme pour les autres versions mineures, les utilisateurs n’ont pas besoin de sauvegarder et recharger leur base de données, ni d’utiliser pg_upgrade
pour appliquer la mise à jour. Vous pouvez simplement arrêter PostgreSQL et mettre à jour ses binaires.
Si vous n’avez pas installé certaines mises à jour précédentes, certaines opérations supplémentaires peuvent être nécessaires après la mise à jour. Pour s’en assurer, consulter les notes de mises à jour précédentes.
Voir les notes de version pour les détails.
Liens
- PostgreSQL (421) ,
- release (89) ,
- mineure (34) ,
- sécurité (60) ,
- 17 (9) ,
- 16 (15) ,
- 15 (17) ,
- 14 (27) ,
- 13 (27) ,
- update (49)