Bună, acum câteva zileLinuxA fost descoperită o vulnerabilitate la overflow buffer în funcția gethostbyname a bibliotecii standard GNU glibc, iar numărul vulnerabilității este CVE-2015-0235. Hackerii pot folosi seria de funcții gethostbyname pentru a executa cod de la distanță și a-l obțineServerAceastă vulnerabilitate are multe căi de declanșare și un impact larg, vă rugăm să acordați atenție și să o remediați temporar la timp, iar noi o vom actualiza cât mai curând posibilOglindireaFixează. Vă rog să știți.
1. Data lansării vulnerabilităților
201527 ianuarie 2019
2. Software și sisteme care au fost confirmate ca fiind folosite cu succes
Glibc 2.2Până la 2.17 (include versiunile 2.2 și 2.17)
3. Descrierea vulnerabilităților
GNU glibcO vulnerabilitate la overflow de buffer a fost expusă în funcția gethostbyname a bibliotecii standard, iar numărul vulnerabilității este CVE-2015-0235. Glibc este o bibliotecă C care oferă apeluri de sistem și funcții de bază, cum ar fi open, malloc, printf etc. Toate programele conectate dinamic folosesc Glibc. Un atacator la distanță ar putea exploata această vulnerabilitate pentru a executa cod arbitrar și a escalada privilegiile utilizatorului care rulează aplicația.
4. Metode de detectare a vulnerabilităților
Urmează instrucțiunileFuncționarePutea. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define CANAR in_the_coal_mine" struct { buffer de char[1024]; char canary[mărimea (CANARY)]; } temp = { "buffer", CANARY }; int main(void) { Struct Hostent Resbuf; struct hostent *rezultat; int herrno; int retval; /*** strlen (nume) = size_needed -mărimea (*host_addr) - dimensiunea (*h_addr_ptrs) - 1; ***/ size_t len = mărimea (tamponului temporar) -16 * dimensiunea (caracterul nesemnat) - 2 mărimea (caracterului *) - 1; numele caracului[sizeof(temp.buffer)]; memset (nume, '0', len); nume[len] = '\0'; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), & result, &herrno); if (strcmp(temp.canary, CANARY) !=0) { puts ("vulnerabil"); ieșire(EXIT_SUCCESS); } if (retval == ERANGE) { puts ("nevulnerabil"); ieșire(EXIT_SUCCESS); } puts ("nu ar trebui să se întâmple"); ieșire(EXIT_FAILURE);
}
Salvează ca GHOST.c Rulează gcc GHOST.c -o GHOST
$./GHOST nevulnerabil Reprezintă o reparație reușită.
5. Sugerează planuri de reparații
Notă specială: Deoarece glibc este o componentă de bază a sistemului Linux, pentru a evita impactul patch-urilor asupra serverului tău, se recomandă să alegi un moment potrivit pentru reparație și să te asiguri că faci backup prin operația de snapshot înainte de reparare.
Centos 5/6/7:
Actualizare yum glibc
Ubuntu 12/14
Actualizare apt-get
apt-get instalează libc6
Debian 6
wget -O /etc/apt/sources.list.d/debian6-lts.listhttp://mirrors.aliyun.com/repo/debian6-lts.list Actualizare apt-get apt-get instalează libc6
Debian 7
Actualizare apt-get
apt-get instalează libc6
Opensuse 13
Reîmprospătarea ZIPPER
Zypper Update glibc*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Actualizare yum glibc
|