Bonjour
"The PostgreSQL Global Development Group" a sorti le 1 mars 2018 une mise à jour des versions 9.3, 9.4, 9.5, 9.6 et 10
Cette mise à jour corrige principalement une faille de sécurité permettant de créer une fonction qui se comporte comme "un cheval de troie"...
  • un utilisateur crée dans le schéma PUBLIC une fonction de même signature qu'une fonction système
  • un SUPER USER appelle la dite fonction système supposée anodine
  • la fonction "cheval de troie" s’exécute à la place car PostgreSQL cherche les objets en premier lieu dans PUBLIC

Les utilisateurs de PostgreSQL sont averti de procéder à la mise à jour dès que possible.
Par ailleurs, des solutions simples peuvent corriger la faille "cheval de troie" sans mise jour.
  • empêcher les utilisateurs non super user de créer des objets dans PUBLIC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REVOKE CREATE ON SCHEMA public FROM PUBLIC;
  • ou imposer l'appel aux fonctions par nom_schema.nom_fonction
  • ou supprimer ou renommer le schéma PUBLIC (attention! certains outils on besoin de ce schéma)
  • ou changer le chemin par défaut de recherche des objets par utilisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER ROLE username SET search_path = "$user";
  • ou de façon globale dans le fichier de configuration du serveur (postgresql.conf)

@+