Ciao, qualche giorno faLinuxÈ stata scoperta una vulnerabilità di overflow del buffer nella funzione gethostbyname della libreria standard GNU glibc, e il numero di vulnerabilità è CVE-2015-0235. Gli hacker possono usare la serie di funzioni gethostbyname per eseguire codice remoto e ottenerloServerQuesta vulnerabilità ha molti percorsi di trigger e un ampio impatto di ampio, vi invitiamo a prestare attenzione e a ripararla temporaneamente in tempo, e la aggiorneremo il prima possibileMirroringCorrezione. Per favore, sappi così.
1. Data di rilascio della vulnerabilità
201527 gennaio 2019
2. Software e sistemi che sono stati confermati come utilizzati con successo
Glibc 2.2Fino alla 2.17 (include le versioni 2.2 e 2.17)
3. Descrizione delle vulnerabilità
GNU glibcUna vulnerabilità di overflow del buffer è stata esposta nella funzione gethostbyname della libreria standard, e il numero di vulnerabilità è CVE-2015-0235. Glibc è una libreria C che fornisce chiamate di sistema e funzioni di base, come open, malloc, printf, ecc. Tutti i programmi connessi dinamicamente usano Glibc. Un attaccante remoto potrebbe sfruttare questa vulnerabilità per eseguire codice arbitrario e aumentare i privilegi dell'utente che esegue l'applicazione.
4. Metodi di rilevamento delle vulnerabilità
Segui le istruzioniFunzionamentoPotere. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define CANARINO in_the_coal_mine" struct { buffer di char[1024]; canarino di carattere [dimensione di(CANARINO)]; } temp = { "buffer", CANARY }; int main(void) { struct hostent resbuf; struct hostent *risultato; int herrno; int retval; /*** strlen (nome) = size_needed -dimensione (*host_addr) - dimensione (*h_addr_ptrs) - 1; ***/ size_t len = dimensione(tampone temporanea) -16*dimensione(carattere non firmato) - 2*dimensione(carattere *) - 1; nome del carattere[sizeof(temp.buffer)]; memset (nome, '0', len); nome[len] = '\0'; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), & result, &herrno); if (strcmp(temp.canary, CANARY) !=0) { puts ("vulnerabile"); uscita(EXIT_SUCCESS); } if (retval == ERANGE) { puts ("non vulnerabile"); uscita(EXIT_SUCCESS); } puts ("non dovrebbe accadere"); uscita(EXIT_FAILURE);
}
Salva come GHOST.c Esegui gcc GHOST.c -o GHOST
$./GHOST invulnerabile Rappresenta una riparazione riuscita.
5. Suggerire piani di riparazione
Nota speciale: Poiché glibc è un componente base del sistema Linux, per evitare l'impatto delle patch sul tuo server, si consiglia di scegliere un momento adatto per riparare e di assicurarsi di fare il backup tramite l'operazione snapshot prima della riparazione.
Centos 5/6/7:
Aggiornamento Yum glibc
Ubuntu 14/12
aggiornamento apt-get
apt-get installa libc6
Debian 6
wget -O /etc/apt/sources.list.d/debian6-lts.listhttp://mirrors.aliyun.com/repo/debian6-lts.list aggiornamento apt-get apt-get installa libc6
Debian 7
aggiornamento apt-get
apt-get installa libc6
Opensuse 13
Aggiornamento ZIPPER
Zypper Update glibc*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Aggiornamento Yum glibc
|