Hallo, een paar dagen geledenLinuxEr is een buffer overflow-kwetsbaarheid ontdekt in de gethostbyname-functie van de GNU glibc-standaardbibliotheek, en het kwetsbaarheidsnummer is CVE-2015-0235. Hackers kunnen de gethostbyname-reeks functies gebruiken om externe code uit te voeren en deze te verkrijgenserverDeze kwetsbaarheid kent veel triggerpaden en een groot impose, let er op en los het tijdelijk op, en we zullen het zo snel mogelijk bijwerkenSpiegelingOplossing. Weet het alsjeblieft.
1. Kwetsbaarheidsvrijgavedatum
201527 januari 2019
2. Software en systemen waarvan is bevestigd dat ze succesvol zijn gebruikt
Glibc 2.2Tot 2.17 (inclusief versies 2.2 en 2.17)
3. Beschrijving van kwetsbaarheden
GNU glibcEr werd een buffer overflow-kwetsbaarheid blootgelegd in de gethostbyname-functie van de standaardbibliotheek, en het kwetsbaarheidsnummer is CVE-2015-0235. Glibc is een C-bibliotheek die systeemaanroepen en basisfuncties biedt, zoals open, malloc, printf, enzovoort. Alle dynamisch verbonden programma's gebruiken Glibc. Een externe aanvaller kan deze kwetsbaarheid misbruiken om willekeurige code uit te voeren en de rechten van de gebruiker die de applicatie draait te escaleren.
4. Kwetsbaarheidsdetectiemethoden
Volg de instructiesWerkingKunnen. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define KANARIE"in_the_coal_mine" struct { char buffer[1024]; char canary[sizeof(CANARY)]; } temp = { "buffer", CANARY }; int main(void) { struct hostent resbuf; struct hostent *resultaat; int herrno; int retval; /*** strlen (naam) = size_needed -grootte van (*host_addr) - grootte van (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) -16*sizeof(unsigned char) - 2*sizeof(char *) - 1; char name[sizeof(temp.buffer)]; memset (naam, '0', len); name[len] = '\0'; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); als (strcmp(temp.canary, CANARY) !=0) { puts("kwetsbaar"); exit(EXIT_SUCCESS); } als (retval == ERANGE) { puts ("nietkwetsbaar"); exit(EXIT_SUCCESS); } puts("zou niet moeten gebeuren"); exit(EXIT_FAILURE);
}
Opslaan als GHOST.c Voer gcc GHOST.c uit -o GHOST
$./GHOST novulnerable Betekent een geslaagde reparatie.
5. Stel reparatieplannen voor
Speciale opmerking: Omdat glibc een basisonderdeel is van het Linux-systeem, wordt aangeraden om de impact van patching op je server te vermijden om een geschikt moment te kiezen voor reparatie en ervoor te zorgen dat je een back-up maakt tijdens de snapshot-operatie voordat je reparatie uitvoert.
Centos 5/6/7:
Yum Update glibc
Ubuntu 12/14
apt-get update
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 update apt-get install libc6
Debian 7
apt-get update
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
|