Hallo, vor ein paar TagenLinuxEine Buffer-Overflow-Schwachstelle wurde in der gethostbyname-Funktion der GNU glibc-Standardbibliothek entdeckt, und die Schwachstellennummer lautet CVE-2015-0235. Hacker können die gethostbyname-Reihe von Funktionen nutzen, um entfernten Code auszuführen und ihn zu erhaltenServerDiese Schwachstelle hat viele Auslöserpfade und große Auswirkungen – bitte beachten Sie sie und beheben Sie sie vorübergehend rechtzeitig, wir werden sie so bald wie möglich aktualisierenSpiegelungLösung. Bitte wissen Sie es.
1. Freisetzungsdatum der Schwachstelle
201527. Januar 2019
2. Software und Systeme, die als erfolgreich genutzt wurden
Glibc 2.2Bis 2.17 (einschließlich Versionen 2.2 und 2.17)
3. Beschreibung der Schwachstellen
GNU glibcEine Buffer-Overflow-Schwachstelle wurde in der gethostbyname-Funktion der Standardbibliothek offengelegt, und die Schwachstellennummer lautet CVE-2015-0235. Glibc ist eine C-Bibliothek, die Systemaufrufe und grundlegende Funktionen wie Open, Malloc, Printf usw. bereitstellt. Alle dynamisch verbundenen Programme verwenden Glibc. Ein entfernter Angreifer könnte diese Schwachstelle ausnutzen, um beliebigen Code auszuführen und die Rechte des Benutzers zu erhöhen, der die Anwendung ausführt.
4. Schwachstellenerkennungsmethoden
Befolgen Sie die AnweisungenBetriebDose. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define KANARIENVOGEL "in_the_coal_mine" struct { Char Puffer[1024]; Char Canary[sizeof(CANARY)]; } temp = { "puffer", CANARY }; int main(void) { Struct Hostent Resbuf; Struct hostent *Ergebnis; Int Herrno; Int Retval; /*** strlen (Name) = size_needed -Sizeof (*host_addr) - Sizeof (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) -16*sizeof(unsigned char) - 2*sizeof(char *) - 1; char name[sizeof(temp.buffer)]; memset (Name, '0', Len); name[len] = '\0'; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY) !=0) { puts ("verwundbar"); Ausgang(EXIT_SUCCESS); } wenn (retval == EBEREICH) { puts("nichtverwundbar"); Ausgang(EXIT_SUCCESS); } puts("sollte nicht passieren"); Ausgang(EXIT_FAILURE);
}
Speichere als GHOST.c Führe gcc GHOST.c -o GHOST aus
$./GHOST novulnerable Stellt eine erfolgreiche Reparatur dar.
5. Vorschläge für Reparaturpläne
Besonderer Hinweis: Da glibc eine grundlegende Komponente des Linux-Systems ist, wird empfohlen, um die Auswirkungen von Patches auf deinen Server zu vermeiden, einen geeigneten Zeitpunkt für die Reparatur zu wählen und vor der Reparatur ein Backup durch den Snapshot-Vorgang zu machen.
Centos 06.05.7:
Yum Update glibc
Ubuntu 12/14
apt-get update
apt-get install libc6
Debian 6
wget -O /etc/apt/sources.list.d/debian6-lts.listhttp://mirrors.aliyun.com/repo/debian6-lts.list apt-get update apt-get install libc6
Debian 7
apt-get update
apt-get install libc6
Opensuse 13
zypper refresh
zypper update glibc*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Yum Update glibc
|