Здравейте, преди няколко дниLinuxОткрита е уязвимост при препълване на буфера във функцията gethostbyname на стандартната библиотека GNU glibc, а номерът на уязвимостта е CVE-2015-0235. Хакерите могат да използват серията функции gethostbyname, за да изпълнят отдалечен код и да го получатСървърТази уязвимост има много тригерни пътища и широк обхват на въздействие, моля, обърнете внимание и временно я отстранете навреме, а ние ще я актуализираме възможно най-скороОгледално отразяванеПоправка. Моля, знайте.
1. Дата на публикуване на уязвимостта
201527 януари 2019 г.
2. Софтуер и системи, за които е потвърдено успешно използване
Glibc 2.2До 2.17 (включва версии 2.2 и 2.17)
3. Описание на уязвимостите
GNU glibcУязвимост при препълване на буфер беше разкрита във функцията gethostbyname на стандартната библиотека, а номерът на уязвимостта е CVE-2015-0235. Glibc е C библиотека, която предоставя системни повиквания и основни функции като open, malloc, printf и др. Всички динамично свързани програми използват Glibc. Отдалечен нападател може да използва тази уязвимост, за да изпълни произволен код и да ескалира привилегиите на потребителя, който използва приложението.
4. Методи за откриване на уязвимости
Следвай инструкциитеЕксплоатацияМога. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define КАНАРЧЕТО"in_the_coal_mine" struct { char buffer[1024]; char canary[sizeof(CANARY)]; } temp = { "buffer", CANARY }; int main(void) { struct hostent resbuf; struct hostent *result; В Херно; int retval; /*** strlen (име) = size_needed -sizeof (*host_addr) - sizeofof (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) -16*sizeof(unsigned char) - 2*sizeof(char *) - 1; име на символа[sizeof(temp.buffer)]; memset (име, '0', Лен); name[len] = '\0'; retval = gethostbyname_r(име,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); ако (strcmp(temp.canary, CANARY) !=0) { puts ("уязвим"); изход(EXIT_SUCCESS); } ако (retval == ERANGE) { puts ("неуязвим"); изход(EXIT_SUCCESS); } puts("не трябва да се случва"); exit(EXIT_FAILURE);
}
Запази като GHOST.c Пусни gcc GHOST.c -o GHOST
$./GHOST неуязвими Представлява успешен ремонт.
5. Предложете планове за ремонт
Специална бележка: Тъй като glibc е основен компонент на Linux системата, за да избегнете въздействието на пачове върху сървъра си, се препоръчва да изберете подходящо време за ремонт и да направите резервно копие чрез операцията snapshot преди ремонта.
Centos 5/6/7:
Yum Update Glibc
Ubuntu 12/14
apt-get актуализация
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 актуализация apt-get install libc6
Debian 7
apt-get актуализация
apt-get install libc6
Opensuse 13
Zypper refresh
Zypper update glibc*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Yum Update Glibc
|