Pozdravljeni, pred nekaj dneviLinuxV funkciji gethostbyname v standardni knjižnici GNU glibc je bila odkrita ranljivost zaradi presežka medpomnilnika, številka ranljivosti pa je CVE-2015-0235. Hekerji lahko uporabijo serijo funkcij gethostbyname za izvajanje oddaljene kode in njeno pridobitevstrežnikTa ranljivost ima veliko sprožilnih poti in velik obseg vpliva, prosimo, da ste pozorni in jo pravočasno začasno odpravite, mi pa jo bomo posodobili čim prejZrcaljenjePopravi. Prosim, vedite.
1. Datum izdaje ranljivosti
201527. januar 2019
2. Programska oprema in sistemi, ki so bili potrjeno uspešno uporabljeni
Glibc 2.2Do različic 2.17 (vključuje različici 2.2 in 2.17)
3. Opis ranljivosti
GNU glibcV funkciji gethostbyname standardne knjižnice je bila razkrita ranljivost zaradi presežka medpomnilnika, ranljivost pa je CVE-2015-0235. Glibc je C knjižnica, ki omogoča sistemske klice in osnovne funkcije, kot so open, malloc, printf itd. Vsi dinamično povezani programi uporabljajo Glibc. Oddaljeni napadalec bi lahko izkoristil to ranljivost za izvajanje poljubne kode in eskalacijo privilegijev uporabnika, ki poganja aplikacijo.
4. Metode zaznavanja ranljivosti
Sledite navodilomDelovanjeMoči. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define CANARY in_the_coal_mine" struct { Char Buffer[1024]; kanarček [sizeof(CANARY)]; } temp = { "buffer", CANARY }; int main(void) { struct hostent resbuf; struct hostent *rezultat; int herrno; int retval; /*** strlen (ime) = size_needed -velikostOf (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) -16*sizeof(unsigned char) - 2*sizeof(char *) - 1; char ime[sizeof(temp.buffer)]; memset(ime, '0', len); ime[len] = '\0'; retval = gethostbyname_r(ime,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY) !=0) { puts ("ranljiv"); izhod(EXIT_SUCCESS); } if (retval == ERANGE) { puts ("notvulnerable"); izhod(EXIT_SUCCESS); } "puts ("ne bi se smelo zgoditi"); izhod(EXIT_FAILURE);
}
Shrani kot GHOST.c Run gcc GHOST.c -o GHOST
$./DUH noranljivi Predstavlja uspešno popravilo.
5. Predlagajte načrte popravila
Posebna opomba: Ker je glibc osnovna komponenta Linux sistema, je priporočljivo, da se izognete vplivu popravljanja na vaš strežnik, da izberete primeren čas za popravilo in pred popravilom varnostno kopirate skozi snapshot operacijo.
Centos 5/6/7:
Yum posodobitev glibc
Ubuntu 12/14
apt-get posodobitev
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 posodobitev apt-get install libc6
Debian 7
apt-get posodobitev
apt-get install libc6
Opensuse 13
Zypper Refresh
Zypper posodobitev glibc*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Yum posodobitev glibc
|