Bonjour, il y a quelques joursLinuxUne vulnérabilité de débordement de tampon a été découverte dans la fonction gethostbyname de la bibliothèque standard GNU glibc, et le numéro de vulnérabilité est CVE-2015-0235. Les hackers peuvent utiliser la série de fonctions gethostbyname pour exécuter du code à distance et l’obtenirserveurCette vulnérabilité comporte de nombreux déclencheurs et un impact considérable, merci de porter attention à elle et de la corriger temporairement à temps, et nous la mettrons à jour dès que possibleMiroirCorrige. Sachez-le.
1. Date de publication des vulnérabilités
201527 janvier 2019
2. Logiciels et systèmes dont l’utilisation réussie a été confirmée
Glibc 2.2Jusqu’à la version 2.17 (inclut les versions 2.2 et 2.17)
3. Description des vulnérabilités
GNU glibcUne vulnérabilité de débordement de tampon a été révélée dans la fonction gethostbyname de la bibliothèque standard, et le numéro de vulnérabilité est CVE-2015-0235. Glibc est une bibliothèque C qui fournit des appels système et des fonctions de base, telles que open, malloc, printf, etc. Tous les programmes dynamiquement connectés utilisent Glibc. Un attaquant distant pourrait exploiter cette vulnérabilité pour exécuter un code arbitraire et augmenter les privilèges de l’utilisateur exécutant l’application.
4. Méthodes de détection des vulnérabilités
Suivez les instructionsFonctionnementPouvoir. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define CANARY « in_the_coal_mine » struct { tampon de chars[1024] ; char canary [taille de(CANARY)] ; } temp = { « tampon », CANARY } ; int main(void) { struct hostent resbuf ; struct hostent *résultat ; int herrno ; int retval ; /*** strlen (nom) = size_needed -taille de (*host_addr) - taille de (*h_addr_ptrs) - 1 ; ***/ size_t len = taillede(tampon temp.buffer) -16*taillede(caractère non signé) - 2*taillede(char *) - 1 ; nom du charbon[sizeof(temp.buffer)] ; memset (nom, '0', len) ; nom[len] = '\0' ; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), & result, &herrno) ; if (strcmp(temp.canary, CANARY) !=0) { puts (« vulnérable ») ; sortie (EXIT_SUCCESS) ; } if (retval == ERANGE) { puts (« pas vulnérable ») ; sortie (EXIT_SUCCESS) ; } puts (« ne devrait pas arriver ») ; sortie (EXIT_FAILURE) ;
}
Enregistrer sous GHOST.c Exécutez gcc GHOST.c -o GHOST
$./GHOST novulnerable Représente une réparation réussie.
5. Suggérer des plans de réparation
Note spéciale : Puisque glibc est un composant de base du système Linux, afin d’éviter l’impact des correctifs sur votre serveur, il est recommandé de choisir un moment approprié pour la réparation et de veiller à sauvegarder via l’opération snapshot avant de la réparer.
Centos 5/6/7 :
Mise à jour miam glibc
Ubuntu 14/12
Mise à jour apt-get
apt-get installer libc6
Debian 6
wget -O /etc/apt/sources.list.d/debian6-lts.listhttp://mirrors.aliyun.com/repo/debian6-lts.list Mise à jour apt-get apt-get installer libc6
Debian 7
Mise à jour apt-get
apt-get installer libc6
Opensuse 13
Refresh de zypper
Zypper Update glibc*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Mise à jour miam glibc
|