-
Modification du serveur pour qu'il rejette les caractères
multi-octets mal codés dans tous les cas (Tatsuo, Tom)
Bien que PostgreSQL™
va dans cette direction depuis un certain temps, les
vérifications sont maintenant appliquées uniformément à tous
les codages et toutes les entrées de texte. Ce sont
maintenant des erreurs, et non plus des messages
d'avertissement. Ce changement sert à se défendre contre les
attaques à base d'injection SQL du type décrit dans
CVE-2006-2313.
-
Rejette des utilisations non sûres de \' dans les chaînes
En tant que défense côté serveur contre les attaques de type
injection SQL décrit dans CVE-2006-2314, le serveur accepte
maintenant seulement '' et plus
\' comme représentation d'un
guillemet simple ASCII dans des chaînes SQL. Par défaut,
\' est rejetté seulement quand
client_encoding est configuré avec
un codage client seul (SJIS, BIG5, GBK, GB18030 ou UHC), qui
est le scénario dans lequel l'injection SQL est possible. Un
nouveau paramètre de configuration backslash_quote est disponible pour ajuster ce
comportement si nécessaire. Notez qu'une sécurité complète
contre CVE-2006-2314 pourrait nécessiter des modifications du
côté client ; le but de backslash_quote est en partie de rendre
évident que les clients non sécurisés sont non sécurisés.
-
Modification des routines d'échappement de texte de
libpq pour le rendre
conscient des considérations de codage
Ceci corrige les applications utilisant libpq pour les problèmes de sécurité
décrits dans CVE-2006-2313 et CVE-2006-2314. Les applications
qui utilisent les connections concurrentes multiples de
PostgreSQL™ devraient
migrer vers PQescapeStringConn() et
PQescapeByteaConn() pour s'assurer
que l'échappement est réalisé correctement pour les
paramétrages utilisés dans chaque connexion de base de
données. Les applications qui font des échappements de
chaînes « à la main »
devraient être modifiées pour se fier à aux routines de la
bibliothèques à la place.
-
Correction de la sélection d'une clé faible dans pgcrypto
(Marko Kreen)
Des erreurs dans la logique de ré-échantillonage de PRNG
peuvent causer la sélection d'une clé de session prévisible
par pgp_sym_encrypt() dans certains
cas. Ceci affecte seulement les constructions n'utilisant pas
OpenSSL.
-
Correction de quelques fonctions de conversion de codage
win1251_to_iso, alt_to_iso, euc_tw_to_big5, euc_tw_to_mic, mic_to_euc_tw étaient toutes cassées à
différents niveaux.
-
Nettoyage des utilisations restantes et parasites de
\' dans les chaînes (Bruce, Jan)
-
Make autovacuum visible in pg_stat_activity (Alvaro)
-
Déasctivation de full_page_writes
(Tom)
Dans certains cas, désactiver full_page_writes sera la cause d'un échec de
la récupération après un arrêt brutal. Une meilleure
correction sera disponible en 8.2 ; maintenant, on ne fait
que la désactiver.
-
Corrections diverses sur le planificateur, en particulier
pour les parcours d'index bitmap et l'optimisation de MIN/MAX
(Tom)
-
Correction d'une mauvaise optimisation dans les jointures
d'assemblages (Tom)
Les jointures externes peuvent quelque fois émettre plusieurs
copies de lignes sans correspondance.
-
Correction d'un arrêt brutal lors de l'utilisation et de la
modification d'une fonction plpgsql dans la même transaction
-
Correction d'un replay WAL pour le cas où un index B-Tree a
été tronqué
-
Correction de SIMILAR TO pour les
modèles impliquant | (Tom)
-
Correction de
SELECT
INTO
et
CREATE
TABLE AS
pour créer des tables dans le
tablespace par défaut, et non pas dans le répertoire base
(Kris Jurka)
-
Correction du serveur pour qu'il utilise les paramètres
personnalisés DH SSL correctement (Michael Fuhr)
-
Amélioration des performances de qsort (Dann Corbit)
Actuellement, ce code est seulement utilisé sur Solaris.
-
Correction de Bonjour pour les Intel Macs (Ashley Clark)
-
Correction de quelques pertes mémoires mineures
-
Correction d'un problème pour la demande du mot de passe sur
certaines systèmes Win32 (Robert Kinberg)
-
Amélioration de la gestion des valeurs par défaut dans les
domaines pour pg_dump
-
Correction de pg_dumpall
pour gérer raisonnablement les utilisateurs et les groupes
nommés de façon identique (uniquement possible lors d'une
sauvegarde d'un serveur de version antérieure à la 8.1) (Tom)
L'utilisateur et le groupe seront assemblés en un seul rôle
avec le droit LOGIN. Auparavant, le
rôle créé n'avait pas le droit LOGIN
le rendant inutilisable en tant que rôle de connexion.
-
Correction de l'option -n de
pg_restore pour qu'elle
fonctionne comme sa description dans la documentation (Tom)