Mimet, le 10 novembre 2023

PostgreSQL 16.1, 15.5, 14.10, 13.13, 12.17, et 11.22 sont publiées !

Le PostgreSQL Global Development Group a publié une mise à jour pour toutes les versions supportées de PostgreSQL, c’est à dire les versions 16.1, 15.5, 14.10, 13.13, 12.17, and 11.22. Cette version corrige trois failles de sécurité et plus de 55 bugs signalés au cours des derniers mois. Voici notre traduction.

visuel annonce

Cette version inclut des correctifs pour les index pour lesquels, dans certains cas, nous conseillons de les réindexer. Veuillez consulter la section “Mise à jour” pour plus de détails.

Pour la liste complète des changements, veuillez consulter les notes de version.

Avertissement sur la fin de vie de PostgreSQL 11

PostgreSQL 11 ne recevra désormais plus de correctifs de sécurité ou de bugs. Si vous utilisez PostgreSQL 11 en production, nous vous suggérons de planifier une mise à jour vers une version plus récente et supportée de PostgreSQL. Voir la politique de vie des versions pour plus d’informations.

Problèmes de sécurité

CVE-2023-5868 : Divulgation mémoire lors d’appels à des fonctions agrégées

Score CVSS v3 : 4.3

Versions affectées : 11 à 16. L’équipe de sécurité ne teste généralement pas les versions non prises en charge, mais ce problème est assez ancien.

Certains appels de fonctions agrégées recevant des arguments de type “inconnu” peuvent divulguer des octets de mémoire du serveur entre la fin de la valeur de type “inconnu” et l’octet zéro suivant. On obtient généralement une valeur de type “inconnu” par l’intermédiaire d’une chaîne littérale sans désignation de type. Nous n’avons pas confirmé ou exclu la viabilité des attaques qui prévoient la présence d’informations confidentielles importantes dans les octets divulgués.

Le projet PostgreSQL remercie Jingzhou Fu pour avoir rapporté ce problème.

CVE-2023-5869 : Dépassement de tampon dû à un débordement d’entier lors de la modification d’un tableau

Score CVSS v3 : 8.8

Versions affectées : 11 à 16. L’équipe de sécurité ne teste généralement pas les versions non prises en charge, mais ce problème est assez ancien.

Lors de la modification de certaines valeurs de tableaux SQL, des contrôles de débordement manquants permettent à des utilisateurs de bases de données authentifiés d’écrire des octets arbitraires dans une zone de mémoire, ce qui facilite l’exécution de codes arbitraires. Les contrôles de débordement manquants permettent également aux utilisateurs de bases de données authentifiés de lire une large zone de la mémoire du serveur. Le correctif CVE-2021-32027 a couvert certaines attaques de cette description, mais d’autres manquaient.

Le projet PostgreSQL remercie Pedro Gallegos pour avoir rapporté ce problème.

CVE-2023-5870 : Le rôle pg_cancel_backend peut signaler certains processus du superutilisateur

Score CVSS v3 : 2.2

Versions affectées : 11 à 16. L’équipe de sécurité ne teste généralement pas les versions non supportées, mais ce problème est assez ancien.

La documentation indique que le rôle pg_cancel_backend ne peut pas envoyer de signal à « un backend appartenant à un superutilisateur ». Au contraire, il peut envoyer un signal à un processus en arrière-plan, y compris le lanceur de réplication logique. Il peut envoyer un signal aux processus d’autovacuum et ai lanceur d’autovacuum. L’envoi d’un signal aux processus autovacuum et aux deux lanceurs ne fournit pas d’exploit significatif, donc l’exploitation de cette vulnérabilité nécessite une extension non-core avec un processus d’arrière-plan moins résistant. Par exemple, un processus d’arrière-plan non-core qui ne redémarre pas automatiquement subirait un déni de service en ce qui concerne ce processus d’arrière-plan particulier.

Le projet PostgreSQL remercie Hemanth Sandrana et Mahendrakar Srinivasarao pour avoir rapporté ce problème.

Correction de bugs et améliorations

Cette mise à jour corrige plus de 55 bugs qui ont été signalés au cours des derniers mois. Les problèmes listés ci-dessous affectent PostgreSQL 16. Certains de ces problèmes peuvent également affecter d’autres versions supportées de PostgreSQL.

  • Correction d’un problème où les index GiST avaient un comportement incorrect pendant une opération de “page split” (division de page), pouvant conduire à des résultats incorrects dans les recherches d’index ultérieures. Veuillez réindexer les index GiST après avoir installé cette mise à jour.
  • Correction d’un problème où les index B-tree dédupliquaient incorrectement les colonnes de type interval. Veuillez réindexer tous index B-tree incluant une colonne de type interval après avoir installé cette mise à jour.
  • Indexation plus efficace des valeurs de date, timestamptz et timestamp dans les index BRIN en utilisant une opsclass minmax_multi. Bien que cela ne soit pas obligatoire, nous recommandons de réindexer les index BRIN qui incluent ces types de données après avoir installé cette mise à jour.
  • Correction pour l’insertion en masse dans des tables partitionnées.
  • Correction de plantages à l’exécution dans certains cas pour les tables partitionnées par hachage avec plusieurs clés de partition.
  • Lancement de l’erreur adéquate si pgrowlocks() est appliqué à une table partitionnée.
  • Correction de la re-vérification incohérente des lignes mises à jour simultanément pendant un MERGE en mode READ COMMITTED.
  • Identification correcte de la table cible dans un UPDATE/ DELETE / MERGE même lorsque la table parente est exclue par des contraintes.
  • Correction de la sur-allocation d’un tsvector construit.
  • Correction de ALTER SUBSCRIPTION pour appliquer les changements dans l’option run_as_owner.
  • Plusieurs corrections pour COPY FROM.
  • Corrections pour le cas de lectures partielles du fichier pg_control.
  • Correction des erreurs “could not find pathkey item to sort” se produisant lors de la planification de fonctions d’agrégation avec les options ORDER BY ou DISTINCT.
  • Lorsque track_io_timing est activé, inclure le temps pris par les opérations d’extension de relation comme temps d’écriture.
  • Suivi des dépendances des instructions CALL mises en cache, et replanification si nécessaire.
  • Considère comme FATAL des erreurs out of memory lors de la lecture des journaux.
  • Correction de pg_dump pour sauvegarder run_as_owner, une nouvelle option des souscriptions.
  • Correction de pg_restore pour que des restaurations partielles incluent à la fois les ACLs des tables sélectionnées et les ACLs des colonnes.
  • Ajout de règles à pg_upgrade pour contrôler l’usage des types de données obsolètes abstime, reltime et tinterval.
  • Correction de vacuumdb pour que de multiples paramètres -N excluent bien les tables de plusieurs schémas.
  • amcheck ne rapportera plus des suppressions de pages interrompues comme une corruption.
  • Correction des index btree_gin sur les champs interval afin qu’ils renvoient des données avec les opérateurs < et <=.

Mise à jour

Toutes les mises à jour de PostgreSQL sont cumulatives. Comme pour les autres versions mineures, les utilisateurs n’ont pas à décharger et de recharger leur base de données ni à utiliser pg_upgrade pour appliquer cette mise à jour. Vous pouvez simplement arrêter PostgreSQL et mettre à jour ses binaires.

Nous recommandons de réindexer certains types d’index après avoir appliqué cette mise à jour, y compris :

  • les index GiST ;
  • les index B-tree qui utilisent le type de données interval ;
  • les index BRIN qui utilisent les types de données date, timestamptz et timestamp et une opsclass minmax_multi.

Sur PostgreSQL 12 et versions ultérieures, vous pouvez utiliser REINDEX CONCURRENTLY pour éviter de bloquer les écritures sur l’index et la table affectés, par exemple :

REINDEX INDEX CONCURRENTLY nom_de_votre_index;

Les utilisateurs qui ont sauté une ou plusieurs mises à jour pourraient avoir besoin d’exécuter des étapes supplémentaires après la mise à jour. Veuillez consulter les notes de version des versions antérieures pour plus de détails.

Pour plus de détails, veuillez consulter les notes de version.

Liens


DALIBO

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