Hej, for et par dage sidenLinuxEn buffer overflow-sårbarhed er blevet opdaget i gethostbyname-funktionen i GNU glibc-standardbiblioteket, og sårbarhedsnummeret er CVE-2015-0235. Hackere kan bruge gethostbyname-serien af funktioner til at udføre fjernkode og hente denServerDenne sårbarhed har mange trigger-veje og stor betydning, vær venlig at være opmærksom på den og midlertidigt rette den i tide, og vi opdaterer den så hurtigt som muligtSpejlingFiks. Vær venlig at vide.
1. Sårbarhedsudgivelsesdato
201527. januar 2019
2. Software og systemer, der er bekræftet at være blevet brugt med succes
Glibc 2.2Op til 2.17 (inkluderer versionerne 2.2 og 2.17)
3. Beskrivelse af sårbarheder
GNU glibcEn buffer overflow-sårbarhed blev afsløret i gethostbyname-funktionen i standardbiblioteket, og sårbarhedsnummeret er CVE-2015-0235. Glibc er et C-bibliotek, der leverer systemkald og grundlæggende funktioner, såsom open, malloc, printf osv. Alle dynamisk forbundne programmer bruger Glibc. En fjernangriber kunne udnytte denne sårbarhed til at udføre vilkårlig kode og eskalere rettighederne for brugeren, der kører applikationen.
4. Sårbarhedsdetekteringsmetoder
Følg instruktionerneDriftDåse. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define KANARIEFUGL "in_the_coal_mine" struct { char buffer[1024]; char canary [sizeof(CANARY)]; } temp = { "buffer", CANARY }; int main(void) { Struct Hostent Resbuf; Struct hostent *resultat; int herrno; Int Retval; /*** strlen (navn) = 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 (navn, '0', len); name[len] = '\0'; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); hvis (strcmp(temp.canary, CANARY) !=0) { puts("sårbar"); exit(EXIT_SUCCESS); } hvis (retval == ERANGE) { puts("ikkesårbar"); exit(EXIT_SUCCESS); } puts("bør ikke ske"); udgang(EXIT_FAILURE);
}
Gem som GHOST.c Kør gcc GHOST.c -o GHOST
$./GHOST novulnerable Repræsenterer en vellykket reparation.
5. Foreslå reparationsplaner
Særlig note: Da glibc er en grundlæggende komponent i Linux-systemet, anbefales det for at undgå påvirkningen af patching på din server, at du vælger et passende tidspunkt til reparation og sørger for at tage backup gennem snapshot-operationen, før du reparerer.
Centos 6/5/7:
Yum opdatering glibc
Ubuntu 12/14
apt-get opdatering
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 opdatering apt-get install libc6
Debian 7
apt-get opdatering
apt-get install libc6
Opensuse 13
Zypper refresh
Zypper opdatering glibc*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Yum opdatering glibc
|