Здравствуйте, несколько дней назадЛинуксОбнаружена уязвимость переполнения буфера в функции 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]; чаровая канарейка[sizeof(CANARY)]; } temp = { «буфер», КАНАРЕЙКА }; int main(void) { struct hostent resbuf; struct hostent *result; В Херрно; int retval; /*** strlen (name) = size_needed -sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) -16*sizeof(unsigned char) - 2*sizeof(char *) - 1; название символа[sizeof(temp.buffer)]; memset (имя, '0', Len); name[len] = '\0'; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY) !=0) { puts («уязвимый»); выход(EXIT_SUCCESS); } if (retval == ERANGE) { puts («неуязвимый»); выход(EXIT_SUCCESS); } puts("не должно быть"); выход(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
Обновление Zipper
Обновление zypper glibc*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo Yum Update Glibc
|