Developpez.com

Le Club des Développeurs et IT Pro

Deux failles dans MySQL, MariaDB et PerconaDB permettent à un simple utilisateur d'avoir des privilèges root,

Des correctifs sont disponibles

Le 2016-11-07 19:18:26, par Olivier Famien, Chroniqueur Actualités
MySQL est l’une des bases de données les plus utilisées dans le monde. Selon le classement du mois de novembre de DB-Engines, cette base de données relationnelles est le second au monde en termes de popularité juste derrière Oracle. Vu la grande proportion de ses utilisateurs, un problème découvert au sein de ce système de gestion de base de données relationnelles (SGBDR) affecterait donc un grand nombre d’utilisateurs.

Récemment, un hacker éthique du nom de Dawid Golunski a découvert une vulnérabilité liée à une situation de compétition au sein de MySQL et des produits dérivés de ce système notamment MariaDB et PerconaDB. Une situation de compétition est un défaut dans un système caractérisé par un résultat différent selon l’ordre dans lequel agissent les acteurs du système. Dans ce cas de figure, l’exécution de la déclaration REPAIR TABLE SQL par un utilisateur doté de privilèges réduits comme la sélection, la création et l’insertion est effectuée de manière non sécurisée. En conséquence, cela permet à un utilisateur local doté de droits d’accès limités dans une base de données d’élever ses privilèges afin d’exécuter du code arbitraire comme un utilisateur ayant des droits sur toutes les bases de données sur le serveur de base de données.

De manière détaillée, une fois que le tiers malveillant a eu accès à l’ensemble de ces bases de données sur le serveur, il peut se servir de deux autres vulnérabilités découvertes et qui ont pour référence CVE-2016-6662 et CVE-2016-6664. La vulnérabilité CVE-2016-6664 permet à l’attaquant d’avoir accès aux répertoires /var/log ou /var/lib/mysql. Une fois à ce niveau, il suffit de supprimer le fichier error.log et de le remplacer avec un lien symbolique afin d’élever les privilèges.

L’élévation de privilèges pourrait être déclenchée instantanément sans redémarrage du service de MySQL en mettant fin au processus enfant de mysqld. Lorsque le processus enfant de mysqld est arrêté, le wrapper va effectuer une boucle et créer immédiatement un autre fichier MySQL dans un emplacement spécifié dans le lien symbolique par l’attaquant afin de permettre à ce dernier d’élever immédiatement ses privilèges.

La faille CVE-2016-6662 pour sa part est utilisée pour mener une attaque d’injection de code SQL. Si l’attaque réussie, elle permet à un tiers malveillant d’exécuter du code arbitraire avec des privilèges root qui compromettrait le serveur sur lequel de MySQL est exécutée.

Cette faille liée à la situation de compétition combinée aux deux autres failles afin de compromettre les serveurs de MySQL et dérivés affecte les implémentations des versions 5.5.51, 5.6.32, 5.7.14 ou inférieures de MySQL. Au niveau de MariaDB, ce sont les binaires inférieures aux versions 5.5.52, 10.1.18 et 10.0.28 qui sont touchées par ces failles. Pour ce qui concerne Percona, ce sont les logicels inférieurs aux versions 5.5.51-38.2, 5.6.32-78-1, 5.7.14-8 de Percona Server et les applications antérieures aux versions 5.6.32-25.17, 5.7.14-26.17, 5.5.41-37.0 de Percona XtraDB Cluster qui sont affectées par ces failles.

Oracle et Percona ont corrigé les failles détectées dans les différentes versions de leurs produits. Pour ce qui concerne MariaDB, l’équipe derrière cette base de données a corrigé la faille liée à la situation de compétition. L’élévation du privilège root sera corrigée ultérieurement dans la mesure où elle n’est pas directement exploitable. Par ailleurs, si vous n’avez pas encore appliqué les correctifs, vous pouvez déjà désactiver le support du lien symbolique dans la configuration du serveur de la base de données en appliquant les paramètres ci-dessous dans le fichier my.cnf : symbolic-links = 0. Enfin, même si cette action atténue l’exploitation des failles, il est recommandé en outre d’utiliser les correctifs mis en ligne par les différentes entreprises.

Source : Legal Hackers

Et vous ?

Que pensez-vous de ces failles ?

De quoi remettre en cause l’environnement MySQL ?

Voir aussi

Faille de sécurité : MySQL peut donner les privilèges root à des hackers, et il n'y a toujours pas de correctif

La Rubrique Embarqué, Forum Embarqué, Cours et tutoriels Embarqué, Livres Système Embarqué
  Discussion forum
4 commentaires
  • Bigb
    Membre averti
    Il faut quand même avoir un accès utilisateur à la machine, car j'ai l'impression qu'a distance via un serveur web par exemple la vulnérabilité est quasi impossible à utiliser?
  • BufferBob
    Expert éminent
    Envoyé par Bigb
    Il faut quand même avoir un accès utilisateur à la machine, car j'ai l'impression qu'a distance via un serveur web par exemple la vulnérabilité est quasi impossible à utiliser?
    oui mais c'est pas tellement le propos de pouvoir exécuter à distance, on peut facilement imaginer une faille dans le code PHP qui permet à l'attaquant d'obtenir un shell en www-data sur la machine par exemple, de là il a les accès mysql en fouillant un peu dans les fichiers PHP, la commande mysql qui n'est en général pas restreinte, et la faille décrite ici permet alors de devenir root
  • tontonCD
    Membre actif
    Je pense qu'un site de vente en ligne donne certains droits, comme la possibilité de changer (indirectement) l'état des stocks, donc oui c'est inquiétant
  • sanix
    Futur Membre du Club
    dans ce qui est dit, il est fondamental d'acceder au fichier error.log, a mon avis, si les parefeus sont bien configurees et que les fichiers ne sont pas en partage, il est casiment impossible d'y acceder de l'exterieur de la machine( Ce qui devrait etre le plus inquietant), neamoins, cela reste une faille car les hackers n'ont pas de limites!!!