Denial of service in microkernel

Nicholas Mc Guire der.herr at hofr.at
Wed Apr 1 08:41:21 CEST 2015


On Wed, 01 Apr 2015, Gayathri Nagarajan wrote:

>    I executed fork bomb(a process continually replicates itself to deplete
>    the system resources), a denial of service attack in Linux kernel and the
>    kernel got crashed. This is because of the depletion of resources and

The below code does not crash the kernel on my box (3.18.7/4.0-rc5)
are you sure the kernel crashed ?

unpriviledged forkbombs do not crash Linux 3.X (and I can
not remember the last 2.X version that crashed due to a fork bomb - 2.4 it was no big deal)
The user-land might be arbitrarily slow and if you used a graphic terminal it may seem to be frozen - the kernel though is prfectly fine in general - atleastt with
all forkbombs that I use for testing.

>    starvation.**
>    But, upon executing the same application in L4linux under the Fiasco.oc
>    with L4re microkernel architecture, no crashing occurs.**
>    What is the reason behind this stability? How does the
>    microkernel(Fiasco.OC) handle the system calls ?
>    # Code for the fork bomb application :
>    #include<unistd.h>
>    int main(void)
>    {
>    while(1)
>    fork(); **//system call
>    }

all I get is
hofrat at debian:~ $ ./fbomb
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes

(on the user console that started this trivial fork bomb and is of course very very slow) and no kernel crash or oops (serial console)
nor any relevant output in dmesg on the physical console (i3 laptop)

what kernel version /arch is this ?

note that you have a hard limit for the number of processes a user can create
and otehr critical resources - check with ulimit -a


thx!
hofrat



More information about the l4-hackers mailing list