LOXODATA

PostgreSQL 13.2 et autres correctifs

2021-02-18   1129 mots, 6 minutes de lecture

Le PGDG a publié une mise à jour de toutes les versions du système de gestion de bases de données, incluant les versions 13.2, 12.6, 11.11, 10.16, 9.6.21 et 9.5.25. Cette publication clôt deux vulnérabilités et corrige plus de 80 bogues rapportés dans les trois derniers mois.

Cette mise à jour inclut la dernière publication pour PostgreSQL 9.5. Si vous utilisez encore PostgreSQL 9.5 en environnement de production, nous vous suggérons de planifier la mise à jour au plus vite.

Pour une liste complète des changements, référez-vous aux notes de publications .

Problèmes de sécurité

CVE-2021-3393 : Le message d’erreur remonté lors de la violation d’une contrainte de partitionnement peut afficher le contenu de colonnes sur lesquelles l’utilisateur n’a pas de droit de lecture

Versions affectées : 11 - 13

Un utilisateur avec le privilège UPDATE sur une table partitionnée, mais pas le privilège SELECT sur certaines colonnes, peut acquérir des valeurs de colonnes non autorisées depuis un message d’erreur. Ce problème est similaire à CVE-2014-8161, mais les conditions d’exploitation sont plus rares.

Le projet PostgreSQL remercie Heikki Linnakangas pour avoir rapporté ce problème.

CVE-2021-20229 : Le privilège SELECT sur une seule colonne autorise la lecture de toutes les colonnes

Versions affectées : 13

Un utilisateur ayant le privilège SELECT sur une colonne individuelle peut forger une requête spécifique retournant toutes les colonnes de la table.

De plus, une vue stockée qui utilise des privilèges de niveau colonnes disposera d’une matrice d’utilisation des colonnes incomplète. Il est recommandé d’exécuter un CREATE OR REPLACE sur toutes les vues utilisateur pour forcer leur ré-analyse lorsque la sécurité dépend des permissions de niveau colonne.

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

Corrections de bogues et améliorations

Cette publication corrige plus de 80 bogues ayant été rapportés ces derniers mois. Certains de ces bogues ne concernent que la version 13, d’autres concernent les autres versions supportées.

On peut citer :

  • la correction d’un bogue concernant les index GiST où des insertions concurrentes peuvent corrompre l’index par le placement d’entrées dans les mauvaises pages. Il est nécessaire de réindexer les index GiST concernés ;
  • la correction de la commande CREATE INDEX CONCURRENTLY afin de s’assurer que les lignes venant de transactions préparées concurrentes sont bien incluses dans l’index. Il est nécessaire de reconstruire les index construits avec l’option CONCURRENTLY lorsque des transactions préparées ont été utilisées ;
  • un correctif pour les résultats de requêtes potentiellement faux quand un agrégat par hachage est basculé sur disque ;
  • la correction d’un cas limite dans le tri incrémental pouvant amener à un tri de résultat incorrect ou à l’erreur “retrieved too many tuples in a bounded sort” ;
  • la correction d’une défaillance quand une requête CALL ou DO exécutant une annulation de transaction est lancée avec le protocole de requêtage étendu, comme dans une requête préparée ;
  • la correction d’une défaillance quand une procédure PL/pgSQL utilisée par l’ordre CALL sur une autre procédure ayant des paramètres de sorties (OUT) exécute un COMMIT ou un ROLLBACK ;
  • la suppression des erreurs provenant de déclencheurs BEFORE UPDATE sur les tables partitionnées pour des restrictions n’ayant plus lieu d'être ;
  • plusieurs corrections pour des requêtes avec jointures pouvant remonter des messages d’erreurs tels que “no relation entry for relid N” ou “failed to build any N-way joins” ;
  • ne plus considérer les restrictions de parallélisation ou les fonctions retournant un ensemble pour les expressions de tri (ORDER BY) lors de l’utilisation de tris parallélisés ;
  • la correction de la commande ALTER DEFAULT PRIVILEGES pour manipuler les arguments en doublons de façon sûre ;
  • plusieurs corrections de comportement lorsque wal_level est réglé à minimal, y compris lorsqu’une table est réécrite dans une transaction ;
  • plusieurs corrections pour la commande CREATE TABLE LIKE ;
  • s’assurer que l’espace disque alloué pour une table supprimée est libéré rapidement lorsque la transaction est validée ;
  • la correction des rapports de progression de la commande CLUSTER ;
  • la correction de la manipulation des caractères multi-octets échappés par des barres obliques dans la commande COPY FROM ;
  • la correction d’un conflit d’exécution récemment introduit dans la gestion des files LISTEN/NOTIFY ;
  • autoriser l’utilisation de l’opérateur de concaténation (||) pour manipuler toutes les combinaisons des types de données JSON ;
  • la correction de la logique de lecture des journaux de transactions, de telle sorte que les instances secondaires puissent gérer les changements de ligne de temps correctement. Ce problème a pu amener des erreurs telles que “requested WAL segment has already been removed” ;
  • plusieurs corrections de fuites pour le processus walsender à propos du décodage logique et de la réplication ;
  • s’assurer qu’une valeur non vide pour le paramètre krb_server_keyfile surcharge toujours le réglage de la variable d’environnement KRB5_KTNAME ;
  • plusieurs corrections concernant le support du chiffrement GSS ;
  • s’assurer que l’utilisation d’un mot de passe est possible dans la chaine de connexion de la commande \connect ;
  • la correction de divers bogues de la commande \help ;
  • plusieurs corrections de la commande pg_dump ;
  • s’assurer de la prise en compte de tous les journaux de transactions par la commande pg_rewind lors du rembobinage d’une instance secondaire ;
  • la correction d’une fuite mémoire dans l’extension auto_explain ;
  • s’assurer de la fermeture des connexions postgres_fdw si une correspondance utilisateur ou un serveur distant est supprimé(e) ;
  • la correction de la compilation JIT pour être compatible avec LLVM 11 et LLVM 12.

Cette publication contient aussi la publication des données de fuseaux horaires 2021a pour des changements légaux d’heure d'été (DST) en Russie (Volgograd zone) et au Sud Soudan, et des corrections historiques pour Australie, Bahamas, Belize, Bermuda, Ghana, Israël, Kenya, Nigeria, Palestine, Seychelles et Vanuatu.

En particulier, la zone Australia/Currie a été corrigée pour la rendre identique à la zone Australia/Hobart.

Pour une liste complète des changements, référez-vous aux notes de publications.

PostgreSQL 9.5 est en fin de vie

Cette publication est la dernière publication de PostgreSQL 9.5. Si vous utilisez PostgreSQL 9.5 dans un environnement de production, nous vous suggérons de planifier une mise à jour vers une version supportée de PostgreSQL. Vous pouvez consulter la politique de versionnement pour plus d’information.

Mise à jour

Toutes les publications de mises à jour de PostgreSQL sont cumulatives. Comme les autres publications mineures, il n’est pas utile d’extraire et recharger les 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 omis d’appliquer des mises à jour peuvent avoir à appliquer des étapes additionnelles. Les notes de publication des versions précédentes fournissent les détails.

NOTE : PostgreSQL 9.6 n’aura plus de correctifs après le 11 novembre 2021. Vous pouvez consulter la politique de versionnement pour plus d’information.

Liens