Helló, néhány napjaLinuxA GNU glibc szabványkönyvtár gethostbyname funkciójában puffertúlterhelési sebezhetőséget fedeztek fel, és a sebezhetőségi szám CVE-2015-0235. A hackerek a gethostbyname funkciósorozatot használhatják távoli kód végrehajtására és annak megszerzéséreszerverEnnek a sebezhetőségnek sok trigger-útvonala van, és nagy hatása van, kérjük, figyelj rá, és idővel ideiglenesen javítsd meg, és minél előbb frissítjük,TükrözésJavítás. Kérlek, tudd.
1. Sebezhetőség kiadásának dátuma
20152019. január 27.
2. Olyan szoftverek és rendszerek, amelyeket sikeresen használtak
Glibc 2.2Egészen 2.17-ig (beleértve a 2.2 és 2.17-es verziókat is)
3. A sebezhetőségek leírása
GNU glibcA szabványos könyvtár gethostbyname funkciójában egy puffertúlterhelés sérülékenysége került fel, és a sebezhetőségi szám CVE-2015-0235. A Glibc egy C könyvtár, amely rendszerhívásokat és alapvető funkciókat biztosít, mint például open, malloc, printf stb. Minden dinamikusan összekapcsolt program Glibc-et használ. Egy távoli támadó kihasználhatja ezt a sebezhetőséget, hogy tetszőleges kódot hajtson végre, és növelje az alkalmazást futtató felhasználó jogosultságait.
4. Sebezhetőség-észlelési módszerek
Kövesd az utasításokatMűködésTud. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define KANÁRI"in_the_coal_mine" struct { char buffer[1024]; char canary[sizeof(CANARY)]; } temp = { "buffer", CANARY }; int main(void) { struct hostent resbuf; struct hostent *eredmény; int herrno; int retval; /*** strlen (név) = size_needed -méret (*host_addr) - mérete (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) -16*sizeof(nem jelölt karakter) - 2*sizeof(karakter *) - 1; karakter name[sizeof(temp.buffer)]; memset (név, '0', lens); name[len] = '\0'; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY) !=0) { puts ("sebezhető"); exit(EXIT_SUCCESS); } if (retval == ERANGE) { puts ("nem sebezhető"); exit(EXIT_SUCCESS); } puts("nem kellene megtörténnie"); exit(EXIT_FAILURE);
}
Mentsd el GHOST.c néven Futtasd a gcc GHOST.c -o GHOST
$./GHOST Sérülékeny Ez egy sikeres javítást jelent.
5. Javasolj javítási terveket
Különleges megjegyzés: Mivel a glibc a Linux rendszer alapvető komponense, a javítás hatásának elkerülése érdekében ajánlott kiválasztani megfelelő időpontot a javításra, és mindenképp visszamenteni a snapshot műveleten keresztül javítás előtt.
Centos 5/6/7:
Finom frissítés glibc
Ubuntu 12/14
apt-get frissítés
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 frissítés apt-get install libc6
Debian 7
apt-get frissítés
apt-get install libc6
Opensuse 13
zypper frissítés
ZYPPER frissítése glibc*
Aliyun Linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Finom frissítés glibc
|