
Environnement d'exploit basé sur Docker pour la vulnérabilité de contournement d'authentification MySQL/MariaDB CVE-2012-2122. Démontre le défaut de comparaison de mot de passe permettant de se connecter avec des identifiants incorrects.
Lors de la connexion à MariaDB/MySQL, le mot de passe saisi est comparé au mot de passe correct attendu. En raison d'une gestion incorrecte, même si memcmp() renvoie une valeur non nulle, MySQL considère que les deux mots de passe sont identiques. Autrement dit, il suffit de connaître le nom d'utilisateur et de tenter de se connecter à plusieurs reprises pour accéder directement à la base de données SQL.
Versions affectées :
Liens de référence :
Après des tests, bien que cet environnement fonctionne à l'intérieur d'un conteneur, la reproductibilité de la vulnérabilité dépend encore de l'hôte. Il est préférable que l'hôte soit un système Ubuntu ou Mac, mais on ne sait pas si cela fonctionnera à coup sûr. N'hésitez pas à soumettre plus de résultats de test dans les Issues.
Exécutez la commande suivante pour démarrer l'environnement de test :
docker-compose up -d
Une fois l'environnement démarré, un service MySQL (version 5.5.23) sera lancé, écoutant sur le port 3306. Avec un client MySQL normal, vous pouvez vous connecter directement ; le mot de passe root correct est 123456.
Sans connaître le mot de passe correct de notre environnement, exécutez la commande suivante dans bash. Après un certain nombre de tentatives, vous pourrez vous connecter avec succès :
for i in `seq 1 1000`; do mysql -uroot -pwrong -h your-ip -P3306 ; done

Pour plus de tests et méthodes d'exploitation, voir les liens de référence.