Un bogue de glibc met en danger les systèmes Linux

Un bogue dans glibc, la bibliothèque standard C, présent depuis 2008, affecte la sécurité de tous les systèmes Linux.

Il s’agit d’un classique bogue de débordement de pile : un processus écrit à l’extérieur de l’espace alloué à la pile, écrasant des informations du processus et permettant à un pirate dans certaines conditions d’exécuter du code à distance.

En l’occurrence, il s’agit de la fonction getaddrinfo() de la résolution de noms de domaines, qui alloue une mémoire tampon de 2 048 octets sur la pile pour la réponse, et qui dans certaines conditions écrit la réponse même si sa taille est supérieure à la mémoire réservée.

Bizarrement, ce bogue, référence CVE-2015-7547, qui a été introduit dans la version 2.9 en 2008, avait été signalé il y a plus d’un an, mais les personnes en charge n’ont pas dû prendre la mesure de l’énorme faille de sécurité qu’elle représentait.

Il aura fallu sa ‘redécouverte’ récente par des chercheurs de RedHat et de Google pour que le public soit averti, et qu’un correctif soit proposé.

Comme glibc est très largement utilisé dans le monde Linux, un nombre incalculable de fichiers exécutables sont affectés par la faille de sécurité, de navigateurs Web à des clients de messagerie, de la commande SSH à un gestionnaire de journaux, même sans action humaine.

Il suffit d’un simple lien envoyé d’un domaine contrôlé par une personne malveillante pour activer automatiquement la résolution DNS, et un serveur envoyant des réponses dangereuses, pour qu’une exécution de code arbitraire puisse se produire.

Du fait de sa portée, la faille est étonnamment complexe à délimiter. Des chercheurs de Yahoo ont dépassé le stade de la preuve de concept et ont réussi à compromettre un serveur Apache avec PHP.

 

Et d’après l’expert Dan Kaminsky, le code malveillant peut persister dans la mémoire cache des serveurs DNS des fournisseurs d’accès Internet. En activant suffisamment souvent la résolution DNS, un système finira par activer le code malveillant qui est hébergé dans le cache.

Au vu de la gravité de la situation, il est donc impératif que toutes les installations Linux affectées soient mises à jour avec un correctif de sécurité, ou la mise à jour vers glibc 2.23 ou version supérieure, dans les plus brefs délais.