Paris, le 12 août 2022

Le PostgreSQL Global Development Group a publié une mise à jour pour toutes les versions supportées de PostgreSQL, soit les versions 14.5, 13.8, 12.12, 11.17 et 10.22. Voici notre traduction.

visuel annonce

Cette version corrige une faille de sécurité et plus de 40 bugs signalés au cours des trois derniers mois.

Vous êtes encouragé à installer cette mise à jour dès que possible.

Avertissement sur la fin de vie de PostgreSQL 10

PostgreSQL 10 ne recevra plus de correctifs après le 10 novembre 2022. Si vous utilisez PostgreSQL 10 en production, nous vous suggérons de planifier une mise à jour vers une version plus récente et supportée de PostgreSQL. Voir notre politique de vie des versions pour plus d’informations.

Problèmes de sécurité

  • CVE-2022-2625: Extension scripts replace objects not belonging to the extension.

Versions affectées : 10 - 14. L’équipe de sécurité ne teste pas les versions non maintenues, cependant ce problème est assez ancien.

Certaines extensions utilisent les commandes CREATE OR REPLACE et CREATE IF NOT EXISTS. Cependant, certaines n’adhèrent pas aux règles documentées de cibler uniquement les objets déjà connus comme étant des membres de l’extension. Une attaque nécessite le droit de créer des objets permanents dans au moins un schéma, la possibilité de demander ou d’attendre qu’un aministrateur crée ou mette à jour une extension affectée dans ce schéma, et la possibilité de demander ou d’attendre qu’une victime utilise les objets ciblés dans les commandes CREATE OR REPLACE or CREATE IF NOT EXISTS. Avec tous ces prérequis, l’attaquant peut exécuter un code arbitraire avec les droits du rôle de la victime, qui pourrait être un administrateur. Les extensions affectées connues incluent à la fois des extensions fournies dans la distribution PostgreSQL et des extensions tiers. PostgreSQL bloque cette attaque au niveau du serveur, et donc il n’est pas nécessaire de modifier les extensions individuelles.

Le projet PostgreSQL remercie Sven Klemm pour avoir remonté ce problème.

Corrections de bugs et améliorations

Cette mise à jour corrige 40 bugs rapportés ces derniers mois. Les problèmes ci-dessous concernent PostgreSQL 14. Certains peuvent concerner d’autres versions supportées.

Sont inclus dans cette mise à jour :

  • Correction du rejeu des enregistrements WAL de CREATE DATABASE sur les serveurs secondaires lorsque le répertoire d’un tablespace est manquant.
  • Ajout du support des tablespaces qui sont des simples répertoires au lieu des liens symboliques vers d’autres répertoires.
  • Correction des vérifications de droits dans CREATE INDEX pour utiliser les droits de l’utilisateur. Cela corrige les scénarios de sauvegarde/restauration qui reposaient sur le comportement antérieur à la correction de CVE-2022-1552.
  • Dans le protocole de requête étendu, force un commit immédiat après CREATE DATABASE et d’autres commandes qui ne peuvent pas être exécutées dans un bloc de transaction.
  • Correction d’un cas particulier autour de la vérification de la visibilité des transactions qui était plus susceptible de se produire avec la réplication synchrone.
  • Correction d’un code de vérification de droit incorrect pour les statistiques étendues
  • Correction du système des statistiques étendues pour gérer les statistiques de type MCV sur les expressions à valeurs booléennes.
  • Évite l’arrêt brutal du serveur quand l’optimiseur gère des clauses constante = ANY (tableau) et qu’il existe des statistiques étendues de type MCV sur le tableau.
  • Permet l’annulation de ANALYZE pendant le calcul des statistiques étendues.
  • Correction de ALTER TABLE … ENABLE/DISABLE TRIGGER pour gérer la récursion des triggers sur les tables partitionnées.
  • Rejette les expressions et fonctions ROW() dans les FROM qui ont plus de 1600 colonnes.
  • Correction d’une fuite de mémoire dans les abonnés de la réplication logique.
  • Correction des contrôles dans la réplication logique de l’identité du réplica lorsque la table cible est partitionnée.
  • Arrangement pour nettoyer après les erreurs après commit dans SPI_commit(), plutôt que d’attendre des appelants qu’ils le fassent. Cela inclut un correctif pour le même scénario dans PL/Python, qui avait signalé des plantages sur Python 3.11 et des fuites de mémoire sur les anciennes versions de Python 3.
  • Améloration de la gestion de libpq des états d’inactivité en mode pipeline.
  • Dans la méta-commande \watch de psql, ajoute un retour à la ligne après l’annulation avec control-C.
  • Correction de pg_upgrade pour détecter les utilisations des fonctions acceptant les paramètres anyarray que pg_upgrade ne sait pas mettre à jour.
  • Plusieurs corrections de postgres_fdw, y compris la prévention des insertions par lots losqu’il y a des contraintes WITH CHECK OPTION présentes.

Pour la liste complète des changements, veuillez consulter les notes de mise à jour.

Mise à jour

Toutes les versions mineures de PostgreSQL sont cumulatives. Comme pour les autres versions mineures, les utilisateurs n’ont pas besoin d’exporter et restaurer leur base de données ou d’utiliser pg_upgrade pour mettre à jour vers cette version ; il suffit d’arrêter PostgreSQL et de mettre à jour ses binaires.

Les utilisateurs qui ont sauté une ou plusieurs mises à jour peuvent avoir besoin d’exécuter des étapes supplémentaires après la mise à jour ; veuillez consulter les notes de mise à jour des versions précédentes pour plus de détails.

Pour plus de détails, veuillez consulter les notes de mise à jour.

Liens


DALIBO

DALIBO est le spécialiste français de PostgreSQL®. Nous proposons du support, de la formation et du conseil depuis 2005.