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’optionCONCURRENTLY
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
ouDO
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 unCOMMIT
ou unROLLBACK
; - 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’environnementKRB5_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
- Téléchargements
- Note de publication
- Sécurité
- Politique de versionnement
- Suivre @postgresql sur Twitter