Risque

Exécution de commandes non-autorisées.

Systèmes affectés

Toute machine utilisant Microsoft SQL Server 7.0.

Résumé

Une « procédure cataloguée » (ou procédure mémorisée) est un ensemble d'instructions SQL précompilées enregistré dans le dictionnaire d'une base de données SQL sur un serveur. Elles sont exécutées par une application via un appel de procédure (Remote Procedure Call).

Une vulnérabilité de Microsoft SQL server 7.0 permet à un utilisateur mal intentionné d'exécuter des « procédures cataloguées » auxquelles il n'a normalement pas accès.

Description

Dans une base de donnée SQL, tout membre du groupe Sysadmin de la base de données, est un utilisateur particulier appelé Opérateur de Base de Données (DBO : Database Operator).

Lorsqu'une procédure cataloguée temporaire appelle une procédure cataloguée dont le propriétaire est DBO, la vérification des permissions qui devrait avoir lieu est omise. Un utilisateur authentifié du serveur SQL peut créer de telle procédures temporaires. Ceci permet à un utilisateur authentifié mal intentionné d'exécuter n'importe quelle procédure appartenant au DBO

Si une base de donnée du serveur SQL appartient au compte « administrateur système » , cela permet à un utilisateur mal intentionné d'utiliser les fonctions d'administration du serveur.

Il faut donc, pour cela, que les conditions suivantes soient réunies :

  • Le propriétaire de la base de données doit être le compte administrateur système de la machine ;
  • Le propriétaire de la procédure cataloguée doit être DBO ;
  • L'utilisateur mal intentionné doit avoir un accès à la base de données, et doit pouvoir s'authentifier sur le serveur SQL.

Contournement provisoire

Vérifiez que le propriétaire de vos bases de données n'est jamais l'administrateur du système. Si l'une des bases de données appartient à l'administrateur système, changez le propriétaire immédiatement. Elle doit appartenir au compte d'un utilisateur sans privilège d'administration de Windows. On doit alors donner les droits du DBO à cet utilisateur.

Solution

Microsoft recommande d'appliquer le correctifs suivant dans tous les cas :

Nota : Ces correctifs ne peuvent être installés que si vous avez appliqué le Service Pack 2 à votre serveur SQL.

Documentation

Bulletin de sécurité microsoft :

http://www.microsoft.com/technet/security/bulletin/MS00-048.asp

La Faq à ce sujet :

http://www.microsoft.com/technet/security/bulletin/fq00-048.asp