Re: x86_64 system lockup from userspace using setitimer()

From: Chuck Ebbert
Date: Tue Mar 13 2007 - 16:02:34 EST


Johannes Bauer wrote:
> Dear Community,
>
> I think I've encountered a bug with the Linux kernel which results in a
> complete system lockup and which can be started without root priviliges.
> It's reproducible with 2.6.20.1 and 2.6.20.2 and only x64_64 seems
> affected.
>
> Here's the code which triggers the bug (originally found by me using an
> only partly initialized "struct itimerval" structure - hence the strange
> values in it_interval):
>
> -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----
> #include <stdio.h>
> #include <sys/time.h>
> #include <unistd.h>
>
> int main(int argc, char **argv) {
> struct itimerval tim = {
> .it_interval = {
> .tv_sec = 140735669863712,
> .tv_usec = 4199521
> },
> .it_value = {
> .tv_sec = 0,
> .tv_usec = 100000
> }
> };
> setitimer(ITIMER_REAL, &tim, NULL);
> while (1) sleep(1);
> return 0;
> }
> -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----
>
> Compiled with gcc 4.1.1 with "gcc -O2 -Wall -o crash crash.c".
>
> The sourcecode can be found at
> http://www.johannes-bauer.com/crash/crash.c and my kernel configuration
> is at http://www.johannes-bauer.com/crash/config
>
> Any further questions: feel free to ask. Please CC me for any posts in
> this thread.

Could this be fixed by:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8bfd9a7a229b5f3d3eda5d7d45c2eebec5b4ba16

[PATCH] hrtimers: prevent possible itimer DoS

?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/