Bulletin d'alerte Debian

DSA-2864-1 postgresql-8.4 -- Plusieurs vulnérabilités

Date du rapport :
20 février 2014
Paquets concernés :
postgresql-8.4
Vulnérabilité :
Oui
Références dans la base de données de sécurité :
Dans le dictionnaire CVE du Mitre : CVE-2014-0060, CVE-2014-0061, CVE-2014-0062, CVE-2014-0063, CVE-2014-0064, CVE-2014-0065, CVE-2014-0066, CVE-2014-0067.
Plus de précisions :

Diverses vulnérabilités ont été découvertes dans PostgreSQL:

  • CVE-2014-0060 Consolider les restrictions de GRANT ... WITH ADMIN OPTION (Noah Misch)

    Accorder un rôle sans l'option ADMIN OPTION est supposé empêcher le membre bénéficiaire d'octroyer à d'autres membres l'appartenance au rôle ou de la révoquer, mais cette restriction est aisément contournée en exécutant d'abord la commande SET ROLE. L'impact de sécurité est surtout qu'un membre du rôle peut révoquer l'accès à d'autres, contrairement aux souhaits de celui qui lui a accordé le rôle. L'ajout de membres non validés à un rôle est un moindre souci où un membre de rôle non coopératif pourrait accorder la plupart de ses droits à d'autres de toute façon en créant des vues ou des fonctions SECURITY DEFINER.

  • CVE-2014-0061 Prévenir l'augmentation de droits par des appels manuels à des fonctions de validation de langages procéduraux (PL) (Andres Freund)

    Le rôle principal des fonctions de validation est d'être appelées implicitement durant l'exécution de CREATE FUNCTION, mais ce sont aussi des fonctions SQL normales qu'un utilisateur peut appeler explicitement. Appeler un validateur sur une fonction écrite dans un autre langage pour lequel il n'est pas contrôlé, pourrait être exploité à des fins d'augmentation de droits. La correction implique l'ajout d'un appel à une fonction de vérification de droits dans chaque fonction de validation. Les langages procéduraux additionnels auront aussi besoin de procéder à cette modification pour leurs propres fonctions de validation, si elles existent.

  • CVE-2014-0062 Éviter de multiples résolutions de nom lors de l'exécution des commandes DDL sur les tables et index (Robert Haas, Andres Freund)

    Si les résolutions de nom arrivent à des conclusions différentes en raison d'activités simultanées, il est possible de réaliser une partie des commandes DDL sur une table différente d'autres parties. Au moins dans le cas de la commande CREATE INDEX, cela peut être utilisé pour faire en sorte que la vérification des permissions porte sur une autre table que la création d'index, permettant une attaque d'augmentation de droits.

  • CVE-2014-0063 Prévenir un dépassement de tampon avec de longues chaînes d'horodatage (Noah Misch)

    La constante MAXDATELEN est trop petite pour la plus grande valeur possible de type intervalle permettant un dépassement de tampon dans interval_out(). Bien que les fonctions d'entrée d'horodatage fassent davantage attention à éviter un dépassement de tampon, la limite est suffisamment courte pour provoquer le rejet d'entrées valides telles que celles contenant un très long nom de fuseau horaire. La bibliothèque ecpg contient ces vulnérabilités avec d'autres qui lui sont propres.

  • CVE-2014-0064 Prévenir un dépassement de tampon dû à un dépassement d'entier dans des calculs de taille (Noah Misch, Heikki Linnakangas)

    Plusieurs fonctions, essentiellement des fonctions de type entrée, calculent les tailles d'allocation sans vérification de dépassement. Si un dépassement survient, un tampon trop petit sera alloué et provoquera un dépassement d'écriture.

  • CVE-2014-0065 Prévenir les dépassements de tampons de taille fixe (Peter Eisentraut, Jozef Mlich)

    Utiliser strlcpy() et les fonctions liées pour fournir une garantie claire que les tampons de taille fixe ne sont pas dépassés. À la différence des points précédents, il n'est pas clair que ces cas représentent vraiment des problèmes réels, étant donné que, dans la plupart des cas, il apparaît qu'il y a des contraintes antérieures sur la taille des chaînes d'entrée. Néanmoins, il semble prudent de rendre silencieux tous les avertissements de Coverity de ce type.

  • CVE-2014-0066 Éviter un plantage si crypt() retourne NULL (Honza Horak, Bruce Momjian)

    Il y a relativement peu de scénarios dans lesquels crypt() pourrait retourner NULL, mais contrib/chkpass peuvent se planter si c'est le cas. Un cas pratique dans lequel cela pourrait être un problème est celui où libc est configuré pour refuser d'exécuter des algorithmes de hachage non validés (par exemple, mode FIPS).

  • CVE-2014-0067 Documenter les risques de la commande make check dans les instructions de test de régression (Noah Misch, Tom Lane)

    Dans la mesure où le serveur temporaire lancé par make check utilise l'authentification trust, un autre utilisateur sur la même machine pourrait se connecter en tant que superutilisateur de la base de données, et ensuite éventuellement exploiter les privilèges de l'utilisateur du système d'exploitation qui a lancé les tests. Une version à venir introduira probablement des modifications dans les procédures de test pour prévenir ce risque, mais des discussions publiques sont nécessaires auparavant. Aussi pour le moment, il faut simplement prévenir les gens contre l'utilisation de make check quand il y a des utilisateurs non fiables sur la même machine.

Pour la distribution oldstable (Squeeze), ces problèmes ont été corrigés dans la version 8.4.20-0squeeze1.

Pour la distribution unstable (Sid), ces problèmes ont été corrigés dans la version 9.3.3-1 du paquet postgresql-9.3.

Nous vous recommandons de mettre à jour vos paquets postgresql-8.4.