Selon Dawid Golunski, le chercheur à l’origine de la découverte, une vulnérabilité zero-day affecte « tous les serveurs MySQL paramétrés en configuration par défaut dans toutes les branches des versions 5.7, 5.6, et 5.5, y compris les plus récentes », ainsi que les bases de données MariaDB et Percona DB dérivées de MySQL. La faille qui porte la référence CVE-2016-6662, peut être exploitée pour modifier le fichier de configuration MySQL (my.cnf) et permettre à un attaquant d’exécuter une bibliothèque dont il a pris le contrôle avec les privilèges « root » dans le cas où le processus MySQL utilise le script de démarrage mysqld_safe qui fait office de passerelle.

L'exploit peut être exécuté si l'attaquant dispose d'une connexion authentifiée au service MySQL, ce qui est assez courant dans les environnements d'hébergement partagés, ou par injection SQL, une faille que l’on rencontre aussi très souvent dans les sites Web. Dawid Golunski a signalé la vulnérabilité aux développeurs des trois bases de données pour serveurs concernées, mais seules MariaDB et Percona DB ont été corrigées à ce jour. Selon le chercheur, Oracle, qui assure le développement et le support de la base de données open source, a été informé de la faille le 29 juillet dernier, mais n'a pas encore livré de correctifs.

Des réserves sur l'importance de la vulnérabilité

Oracle a adopté un calendrier trimestriel pour livrer ses mises à jour de sécurité et la prochaine publication est prévue en octobre. Mais, MariaDB et Percona DB ayant livré leurs correctifs depuis la fin août, le chercheur a décidé de donner hier des détails sur la vulnérabilité afin que les administrateurs de MySQL puissent prendre les mesures nécessaires pour protéger leurs serveurs. L’avis publié par Dawid Golunski est accompagné d’une preuve de concept limitée de l’exploit, certaines parties ayant été exclues intentionnellement pour éviter les abus. Le chercheur a également signalé une seconde vulnérabilité à Oracle, référencée CVE-2016-6663, qui pourrait simplifier les attaques, mais il n'a encore publié aucun détail à ce sujet.

La divulgation de la vulnérabilité CVE-2016-6662 a suscité plusieurs critiques sur les forums de discussion spécialisés, certains utilisateurs faisant valoir qu’il s’agissait en fait d’une vulnérabilité par escalade de privilèges et non pas par exécution de code à distance, comme le décrit le chercheur, car l’attaquant aurait besoin d'un certain niveau d'accès à la base de données. « Il y a quelques mesures d’atténuation temporaires possibles : les utilisateurs doivent veiller à ce qu'aucun des fichiers de configuration mysql ne soit propriété de l'utilisateur mysql, et ils doivent créer des fichiers my.cnf factices appartenant à « root » qui ne sont pas exécutés », a expliqué Dawid Golunski dans son document. « En aucun cas, ces solutions ne peuvent protéger complètement la base de données et les utilisateurs doivent appliquer les correctifs officiels des fournisseurs dès qu'ils sont disponibles ». Oracle n'a pas immédiatement répondu à une demande de commentaires sur la vulnérabilité.