Analyse d'un comportement permissif du serveur de base de données MySQL
Date : 23 Juin 2005
Introduction
MySQL (http://www.mysql.com) est un serveur de base de données multi-plates-formes sous licence "GNU General Public License (GPL)".
Sous les systèmes Unix, le démon relatif à Mysql ("mysqld") s'exécute avec le minimum de privilèges (sous le compte "mysql" – Cf. dans le fichier de configuration de MySQL la directive "user").
Au niveau des utilisateurs, il existe également une notion de privilèges/droits pour l'accès aux bases de données gérées par MySQL.
Problème
Un utilisateur ayant les privilèges "root" sur le serveur MySQL peut en modifier la configuration afin de faire exécuter ce dernier avec d'autres privilèges ("root" par exemple) que ceux initialement positionnés.
Bien que ce problème ne soit pas une nouvelle vulnérabilité en lui-même, il peut être utilisé conjointement avec l'exploitation d'anciennes vulnérabilités (Cf avis CERT-IST/AV-2002.424, CERT- IST/AV- 2001.087, …). Cette configuration d'attaque permettra alors d'acquérir des privilèges plus élevés que dans le cas où ces vulnérabilités auraient été exploitées avec une configuration "standard" de MySQL.
En effet, avec une configuration standard, l'exploitation d'anciennes vulnérabilités aurait permis à la personne malicieuse de faire exécuter du code avec les (faibles) privilèges accordés par défaut au démon "mysqld". Le fait de changer les privilèges d'exécution du démon "mysqld" permet, dès lors, à cette personne de faire exécuter du code avec les privilèges ainsi positionnés (le cas le plus intéressant est lorsque le démon s'exécute avec les privilèges "root").
Il est important de noter que pour modifier la configuration du serveur de base de données, la personne malicieuse devra connaître préalablement le mot de passe de l'utilisateur "root" sur le service MySQL.
Solutions
Pour éviter ce comportement, mettre à jour MySQL avec la version 3.23.56.
Site : http://www.mysql.com/downloads/index.html
Pour plus d'information
- Référence CVE : CAN-2003-0150
- Article de SecurityFocus : http://www.securityfocus.com/bid/7052