Mises à jour mineures de PostgreSQL : 9.3.3, 9.2.7, 9.1.12, 9.0.16 et 8.4.20

Le groupe de développement de PostgreSQL sort une mise à jour importante pour toutes les versions supportées du SGBD PostgreSQL. Cela inclut les versions 9.3.3, 9.2.7, 9.1.12, 9.0.16, et 8.4.20. Cette mise à jour corrige plusieurs problèmes de sécurité, ainsi que des problèmes de réplication et d'intégrité des données. Il est fortement recommandé à tous les utilisateurs de mettre à jour à la première occasion, particulièrement ceux qui ont mis en œuvre la réplication ou qui ont une application avec des contraintes de sécurité élevées.

Corrections de failles de sécurité

Cette mise à jour apporte une correction à l'annonce de vulnérabilité CVE-2014-0060, révélant que PostgreSQL n'appliquait pas correctement le droit WITH ADMIN OPTION pour la gestion des rôles. Avant cette correction, n'importe quel membre d'un rôle pouvait attribuer ce rôle à d'autres, quelle que soit le droit WITH ADMIN OPTION du membre. Elle corrige également plusieurs failles d'escalade de droits, notamment : CVE-2014-0061, CVE-2014-0062, CVE-2014-0063, CVE-2014-0064, CVE-2014-0065 et CVE-2014-0066. Pour plus d'information sur ces vulnérabilités, veuillez vous référer à la page de sécurité du projet ainsi que la page du wiki détaillant les problèmes de sécurité.

Le PGDG met aussi en garde les utilisateurs contre une faille connue qui permet à un utilisateur d'une même machine d'accéder à un compte système lors de la compilation des sources et d'un “make check” (CVE-2014-0067). “Make check” fait normalement partie du processus de compilation de PostgreSQL depuis les sources. Comme il n'est pour l'instant pas possible de corriger ce problème sans effectuer d'importantes modifications à l'infrastructure de tests, un patch sera publié séparément. En attendant, il est déconseillé aux utilisateurs de lancer “make check” sur des machines dont un compte utilisateur n'est pas digne de confiance.

Correction de réplication et d'intégrité des données

Cette mise à jour corrige aussi certains problèmes concernant la réplication binaire et le verrouillage de lignes, et qui peuvent, dans certains cas, provoquer une corruption de données réversible. Plusieurs correctifs portent sur un problème de verrouillage de pages d'index en réplication, qui peut corrompre les index sur le serveur esclave. Un autre correctif concerne un problème avec le gel des transactions dans la version 9.3. Le problème peut se manifester sur les serveurs ayant bouclé plusieurs fois sur les identifiants de transactions (transaction ID wraparound), et consiste en la réapparition d'anciennes versions des lignes. Le PGDG a aussi corrigé trois bugs pouvant empêcher de nouveaux serveurs en réplication de démarrer. Enfin, cette mise à jour corrige un problème qui pourrait corrompre des clés étrangères, bien que les clés elles-mêmes nécessiteront d'être corrigées à la main après la mise à jour.

En version 9.3, ces corrections apportent quelques nouveaux paramètres de configuration permettant de contrôler le gel des transactions multiples.

Il est primordial que les serveurs esclaves soient mis à jour vers 9.3.3 ou vers une version ultérieure avant le serveur maître, sous peine de casser la réplication.

Autres améliorations

En plus des corrections mentionnées ci-dessus, les améliorations suivantes sont apportées dans cette version :

  • correction de la journalisation de la carte de visibilité dans les WAL ;
  • s'assurer que les index GIN journalisent bien toutes les insertions ;
  • pause_at_recovery_target se met en pause au bon moment ;
  • s'assurer que le walreceiver envoie les messages de suivi du standby en temps voulu ;
  • empêcher les interruptions de timeout de voler le contrôle au code principal ;
  • élimination de plusieurs situations de concurrence (race condition) ;
  • correction de plusieurs messages HINT dans les messages d'erreur ;
  • empêcher le serveur de se verrouiller lors de la perte d'une connexion SSL ;
  • correction de deux erreurs de gestion d'Unicode ;
  • correction de crash sur certaines syntaxes de sous-requête ;
  • correction de crash sur les requêtes de type SELECT FROM table_a_zero_colonne ;
  • correction de deux bugs sur LATERAL ;
  • correction de bugs sur UNION ALL, le partitionnement et les mises à jour ;
  • s'assurer que ANALYZE comprend les domaines sur des intervalles (type range) ;
  • suppression de vérifications de droits lorsque le tablespace par défaut est utilisé ;
  • correction d'une fuite mémoire dans les fonctions JSON ;
  • permettre aux extensions d'avoir des triggers sur événement ;
  • distinction correcte des nombres lors d'une sortie JSON ;
  • correction des permissions pour pg_start_backup() et pg_stop_backup() ;
  • SHIFT_JIS est accepté comme nom de locale ;
  • correction de l'expansion .* pour les variables de fonctions SQL ;
  • correction d'une boucle infinie sur certaines erreurs de connexion lors d'un COPY ;
  • quelques corrections pour des problèmes côté client sur Windows ;
  • possibilité de compiler PostgreSQL sous Visual Studio 2013 ;
  • mise à jour des définitions de timezone.

Les modules optionnels (extensions) suivants ont également reçu des corrections : ECPG, dblink, ISN, pgbench, pg_stat_statements et postgres_fdw. Les notes de versions apportent plus de détail sur les changements en question.

Comme pour les autres mises à jour mineures, il n'est nécessaire ni de sauvegarder et restaurer la base de données, ni d'utiliser pg_upgrade. Vous pouvez simplement arrêter PostgreSQL et mettre à jour ses binaires.

Les utilisateurs ayant passé plusieurs mises à jour peuvent avoir d'autres opérations à réaliser. Voir les notes de versions pour les détails.

Liens:

Afficher le texte source